Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Кто-нибудь по-русски в опенэксель сохранял? / 10 сообщений из 10, страница 1 из 1
06.11.2007, 16:58
    #34919660
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто-нибудь по-русски в опенэксель сохранял?
Привет всем!

Переходим на лицензионный софт потихоньку. На M$ офис всем денег не хватило :)

Ситуация такая: бухгалтера опенофис 2.2.0 в целом устраивает, но есть клиент-банк в котором кнопочка "Открыть в MS Excel", она ее раньше нажимала и в экселе все что надо досчитывала. Сейчас такой фокус не проходит. Но еще есть выгрузка в DBF, изначально выгрузка сама по себе корявая - все в 866, в заголовке кодировка не указана, еще и суммы в текстовом поле.
Я утилитку на VFP6 написал, чтобы эту dbf причесать, и проблема такая получается: если ее как XL5 сохранить, а потом открыть, то кракозябры убираются с помощью Cyrillictools, но надо в меню переконвертацию нажимать.

Никто не знает как из фокса сохранить, чтобы все сразу нормально в опенэкселе открылось? Или как программно открыть?
...
Рейтинг: 0 / 0
06.11.2007, 17:10
    #34919701
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто-нибудь по-русски в опенэксель сохранял?
По умолчанию, COPY TO сохранит файл в текущей кодовой странице среды FoxPro. Если нужна другая кодовая страница, то это надо указывать явно:

COPY TO ... AS 866

CPCONVERT() на все символьные поля, чтобы сделать их в нужной кодовой странице.
...
Рейтинг: 0 / 0
06.11.2007, 17:21
    #34919747
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто-нибудь по-русски в опенэксель сохранял?
ВладимирМПо умолчанию, COPY TO сохранит файл в текущей кодовой странице среды FoxPro. Если нужна другая кодовая страница, то это надо указывать явно:

COPY TO ... AS 866

CPCONVERT() на все символьные поля, чтобы сделать их в нужной кодовой странице.

Это я в курсе, все в 1251 предварительно перегнал. Проблема именно в опенэкселе и формате XL5, он сам левую кодировку берет, более поздние эксели юникод используют, поэтому там эта проблема отсутствует. MS Excel нормально открывает.

Может кто знает как обойти? Некогда пока OLE опенофисовский изучать.
...
Рейтинг: 0 / 0
06.11.2007, 17:51
    #34919859
alexzima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто-нибудь по-русски в опенэксель сохранял?
Лучше взять версию Оо 2.3
...
Рейтинг: 0 / 0
06.11.2007, 17:52
    #34919864
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто-нибудь по-русски в опенэксель сохранял?
alexzimaЛучше взять версию Оо 2.3 А там эта проблема решена?
...
Рейтинг: 0 / 0
06.11.2007, 18:27
    #34920020
BMJ
BMJ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто-нибудь по-русски в опенэксель сохранял?
У меня решилась проблема на 2.3 с опцией COPY TO nameFile TYPE XLS ( не XL5)
...
Рейтинг: 0 / 0
07.11.2007, 07:56
    #34920655
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто-нибудь по-русски в опенэксель сохранял?
BMJУ меня решилась проблема на 2.3 с опцией COPY TO nameFile TYPE XLS ( не XL5)
C 2.2 тоже работает. Спасибо
...
Рейтинг: 0 / 0
09.11.2007, 08:23
    #34926826
Koryuu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто-нибудь по-русски в опенэксель сохранял?
Лично я, когда делал выгрузку в опенофис, создавал объекты и выгружал туда по ячейкам. Муторно, согласен, код строк на 100, не меньше, но зато можно сделать форматирование, прописать формулы и не парить юзера. Идеальный вариант для офисных блондинок:D
Если надо, могу выложить часть кода.
...
Рейтинг: 0 / 0
09.11.2007, 08:31
    #34926837
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто-нибудь по-русски в опенэксель сохранял?
KoryuuЛично я, когда делал выгрузку в опенофис, создавал объекты и выгружал туда по ячейкам. Муторно, согласен, код строк на 100, не меньше, но зато можно сделать форматирование, прописать формулы и не парить юзера. Идеальный вариант для офисных блондинок:D
Если надо, могу выложить часть кода.
Надо.
Данная ситуация и так разрешилась, т.к. задача простая - разделить выписку за день на суммы по подразделениям.
Но рано или поздно понадобится что-нибудь посерьезней.
...
Рейтинг: 0 / 0
09.11.2007, 11:03
    #34927300
Кто-нибудь по-русски в опенэксель сохранял?
KoryuuЛично я, когда делал выгрузку в опенофис, создавал объекты и выгружал туда по ячейкам.
Зачем такой гемор? Можно подготовить массив и выгрузить всю информацию из массива за 1 раз.
Необходимо только предварительно транспонировать подготовленный массив:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
* Процедура записи значения двумерного массива pArray
* в диапазон ячеек, находящихся на листе poSheet
* и начинающихся с ячейки со строкой pRow и столбцом pCol
PROCEDURE OOoSetDataArray
LPARAMETERS poSheet, pRow, pCol, pArray
LOCAL oRange, nRows, nCols, lI, lJ

   nRows = ALEN(pArray,  1 )
   nCols = ALEN(pArray,  2 )

   DIMENSION aDataArray[nCols, nRows]

   *-- Транспонируем массив для функции SetDataArray
   *-- Строки - это столбцы в OO, а столбцы - строки
   For lI= 1  To m.nRows
      For lJ= 1  To m.nCols
         *-- Необходимое изменение для отображения дат!
         aDataArray[lJ, lI] = IIF(VarType(pArray[lI, lJ])=='D', DtoC(pArray[lI, lJ]), pArray[lI, lJ])
      EndFor 
   EndFor 
	  
   *-- Определяем диапазон по массиву
   oRange = poSheet.getCellRangeByPosition(pCol,pRow,pCol+nCols- 1 ,pRow+nRows- 1 )
   TRY
      oRange.SetDataArray(@aDataArray)
   CATCH
   ENDTRY
ENDPROC
По работе OOo + VFP приводилась целая куча интересных примеров в решениях http://www.foxclub.ru/sol] и на форуме http://forum.foxclub.ru/list.php?29] .
Воспользуйтесь поиском!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Кто-нибудь по-русски в опенэксель сохранял? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]