Самый эффективный способ создания файлов Excel - PullRequest
2 голосов
/ 28 октября 2010

Ищите решение 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)

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

EDIT:

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

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

Ответы [ 2 ]

4 голосов
/ 28 октября 2010

Существуют альтернативы 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); 

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

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

0 голосов
/ 28 октября 2010

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

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

...