Осторожно! Торговцы ссылками …
Oct 02

Выполняя очередной проект на работе связанный с генерацией отчета в виде Excel, столкнулся с проблемой, что длинная строка записанная в ячейку обрезается, замерил - оказалось ровно 255 символов.

Такая длинна не просто так, а зачастую связана со старыми форматами.

Когда уже все ограничения будут по принципу возможностей железки - мечты, мечты …

Немного погуглил. Все таки буржуи молодцы, отвечают очень подробно и никогда не оскорбляют того кто задает вопрос. В общем ответ нашел только на английском. Проблема в версии xls файла генерируемого библиотекой Spreadsheet_Excel_Writer. Тут же было написано так сделать “круто”.

$workbook = &new Spreadsheet_Excel_Writer($fname);
$workbook->setVersion(8);

Всего лишь указать версию. После указанных изменений в скрипте, все стало кракозябрами. Не удивительно, и как бы логично, ведь данные я подсовывал в кодировке windows-1251. Попробовал конвертировать строки в utf-8, кракозябры стали другого вида, но все равно не читаемо. Опять же погуглил - оказалось в самой библиотеке можно указать кодировку строк.

$worksheet->setInputEncoding(’CP1251′);

Долго экспериментировал с тем какую именно кодировку указать. Но файл на любых кодировках при открытии сигнализировал красным цветом и сообщал, что если я буду его редактировать, то он сломает ОС Виндовс.

Надо что нибудь другое брать на вооружение. Никто не знает аналогов библиотеки Spreadsheet_Excel_Writer?

Leave a Reply

CAPTCHA image