Страницы

Поиск по вопросам

четверг, 11 июля 2019 г.

Spreadsheet_Excel_Writer(): выгруженный .xls файл Excel (Windows 7) считает неправильным и не открывает

Генерирую и выгружаю .xls файл через старый класс Spreadsheet_Excel_Writer() следующим образом:
$xls = new Spreadsheet_Excel_Writer(); $xls->setVersion(8); $sheet = $xls->addWorksheet(iconv('UTF-8', 'Windows-1251','list')); $sheet->setInputEncoding('CP1251'); $sheet->write( 0, 0, iconv( 'UTF-8', 'Windows-1251', 'Тест' ) ); $sheet->write( 1, 0, iconv( 'UTF-8', 'Windows-1251', 'Тест2' ) ); $sheet->write( 2, 0, iconv( 'UTF-8', 'Windows-1251', 'test' ) ); $xls->send( 'test.xls' ); $xls->close();
Excel 2007 на Windows 7 отказывается открывать данный файл ("файл имеет неверный формат" или что-то такое), однако LibreOffice в Ubuntu открывает и отображает файл отлично, с нужной кодировкой даже. Пытался всячески менять кодировки, версии и прочее - не помогло.
В чем может быть проблема?


Ответ

На самом деле, может быть проблема в типе данных, которые Вы пытаетесь сохранить.
Попробуйте использовать библиотеку PHP XLSX Writer. В установке простая и в пользовании тоже.
Вот небольшой пример того, как записать данные:
$data = array( array('year','month','amount'), array('2003','1','220'), array('2003','2','153.5'), );
$writer = new XLSXWriter(); $writer->writeSheet($data); $writer->writeToFile('output.xlsx');

Комментариев нет:

Отправить комментарий