Наиболее эффективный способ создания файлов Excel

Ищете решение PHP для создания файлов Excel на лету (подумайте о динамической отчетности).

Теперь я видел PHP Excel, и я знаю, что могу создать файл CSV, но это лучшие варианты?

Я запускаю этот скрипт в системе Linux с помощью PHP Excel, но не устанавливает все параметры

$objPHPExcel->getProperties()->setCreator("Phill"); $objPHPExcel->getProperties()->setLastModifiedBy("Phill"); $objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document"); $objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document"); $objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX"); 

Также, если я даю расширение .xls вместо .xlsx, он выдает недопустимый файл и не открывается. (ПРИМЕЧАНИЕ. Я использую Open Office для просмотра созданного листа excel)

Хотелось узнать, есть ли там какие-либо другие / лучшие решения?

РЕДАКТИРОВАТЬ:

Как сохранить файл

 $file = '/path/to/777/dir/file.xlsx'; // not viewable by public $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $objWriter->save($file); 

Related of "Наиболее эффективный способ создания файлов Excel"

Существуют альтернативы PHPExcel, перечисленные здесь

Но прежде чем вы отпустите PHPExcel из рук, я хотел бы знать, почему он не работает. Это то, что обычно работает без проблем; но ваш фрагмент кода ничего не показывает о сохранении файла. Как вы сохраняете файл: какой автор вы используете?

 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('/path/to/777/dir/file.xls'); 

РЕДАКТИРОВАТЬ

или

 $file = '/path/to/777/dir/file.xls'; // not viewable by public $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); $objWriter->save($file); 

Последняя версия Open Office будет (я считаю) читать файлы .xlsx, но она предпочитает, если у них есть правильное расширение.

Обратите внимание, что Excel5 Writer не поддерживает свойства документа (хотя Excel2007 делает). Для этого в списке выпусков PHPExcel есть активный рабочий элемент.

Да, есть. Вы можете использовать Pread's Spreadsheet_Excel_Writer . Он создает только файлы BIFF8 или более старые (Word 2003), но он работает очень хорошо.

Редактирование: я просто заметил, что они говорят, что он нуждается в полной перезаписи и не рекомендует использовать его для новой разработки. Я использую его около 3 лет в производственных системах, и кроме нескольких крошечных ошибок, он отлично работает для меня …