|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
|
artymen |
|
|||
Кодер Профиль Группа: Участник Сообщений: 14 Регистрация: 23.8.2007 Репутация: нет Всего: нет |
Для MS Office я отдельный скрипт написал (после многочасовой долбежки я понял, что универсальный файл невозможно сгенерировать), так что сейчас борюсь персонально с OpenOffice.
Если делаю setVersion(8) и setInputEncoding('CP1251'), то получается следующий результат: верхняя часть документа отображается нормально, а дальше начинаются косяки (MS Office вообще говорит, что документ поврежден, либо вылетает с предложением отправить отчет об ошибке), похоже на переполнение буфера или что-нить в этом духе. Если размер документа меньше определенной величины, то все нормально, но мне нужно генерить прайс размером порядка 2 тыс. строк. Вывод: writer генерит кривой BIFF8. С BIFF5 уже все перепробовал, перегонял текст через iconv() между CP1251, CP1252, UTF-8, UTF-16LE, UTF-16BE в различных комбинациях - бесполезно, каракули лишь разные получаются. Spreadsheet_Excel_Writer 0.9.1 OLE 1.0.0RC1 PHP 5.2.6 OpenOffice 3.0.1 Тема избитая, весь инет усыпан нерабочими решениями, так что прошу помощи здесь |
|||
|
||||
youri |
|
|||
Опытный Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
||||
|
||||
artymen |
|
||||||||
Кодер Профиль Группа: Участник Сообщений: 14 Регистрация: 23.8.2007 Репутация: нет Всего: нет |
Итак, внимание сюда
1) Spreadsheet_Excel_Writer генерит кривой BIFF8, так что про setVersion(8) можно забыть, пока не пофиксят в следующих версиях (утверждают, что проект заморожен уже с 2006 года), а вместе с тем и про setInputEncoding() и юникод 2) Решение проблемы с кириллицей (документ будет нормально отображаться и в MS Office и OpenOffice): Лезем в скрипты Spreadsheet_Excel_Writer, расположенные в "<путь_к_установленному_pear>\Spreadsheet\Excel\Writer\" В Workbook.php находим
В Format.php находим
Теперь безо всяких лишних манипуляций можно писать русский текст в ячейки ! P.S. (взято отсюда: http://sc.openoffice.org/excelfileformat.pdf)
|
||||||||
|
|||||||||
antonML |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 1.12.2009 Репутация: нет Всего: нет |
Все хорошо, а как быть с ограничением в 255 символов ? проблема осталась. Она устраняется при использовании setVersion(8) но это приводит к вышеизложенным проблемам ...
|
|||
|
||||
artymen |
|
|||
Кодер Профиль Группа: Участник Сообщений: 14 Регистрация: 23.8.2007 Репутация: нет Всего: нет |
А вот не знаю. Я доволен, что хотя бы вышеизложенные проблемы решил Возможно, когда-нибудь напишут нормальный модуль для работы с Excel-файлами
|
|||
|
||||
antonML |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 1.12.2009 Репутация: нет Всего: нет |
При использовании setVersion(8) и setInputEncoding('CP1251') у меня тоже сбивается кодировка, но проблема решается когда я убираю setVersion(8) без всяких исправлений Workbook.php и Format.php.
Но при этом строки больше 255 символов обрезаются ... Интересно, а у вас строки обрезаются ? Может я не до конца разобрался ? (и еще, когда я возвращаю setVersion(8) строки не обрезаются) |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Extensions | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |