Создание электронной таблицы Excel на лету с помощью PHP - PullRequest
0 голосов
/ 06 марта 2010

Я создаю файлы Excel в проекте PHP. Эти файлы - не просто данные CSV ... Это таблицы с несколькими вкладками с функциями и форматированием.

Пока что я использую класс Spreadsheet_Excel_Writer , который поставляется с Pear.

Все хорошо, но нашим пользователям не нравятся 2 вещи:

  1. Когда они открывают эти файлы, сгенерированные PHP, изменяют их в Excel и сохраняют эти изменения, Excel просит обновить формат файла, поскольку он был сохранен до версии 5.0 / 95.
  2. Файлы слишком велики из-за встроенных изображений. Насколько я знаю, единственный способ добавить изображения с помощью Spreadsheet_Excel_Writer - это insertBitmap , который добавляет 24-битные растровые изображения в документ.

Я хотел бы решить эти вопросы. Я уверен, что № 1 не может быть сделано, как вы можете видеть там . Но есть ли способ добавить сжатые изображения (JPEG) в документ?

Если невозможно изменить Spreadsheet_Excel_Writer для удовлетворения моих потребностей, каковы ваши классовые рекомендации для этого? Поиск вопросов здесь привел меня к PHPExcel . Есть ли другие хорошие альтернативы?

Если возможно, я бы хотел использовать Spreadsheet_Excel_Writer, потому что переход на другой класс был бы гораздо более трудоемким (эти сгенерированные таблицы довольно сложны).

Я использую PHP 5.2.9.

Ответы [ 2 ]

2 голосов
/ 26 марта 2010

Я использовал PHPExcel . С этим классом я могу избежать пункта № 1, так как я могу сохранять в майских форматах (включая Excel 2003/2007). Для пункта № 2 это возможно, и PHPExcel уже делает это. Когда вы выбрали старый формат Excel, PHPExcel расширяет Spreadsheet_Excel_Writer для сохранения файла.

Было сложно переписать мой код для использования нового класса, но оно того стоило, так как PHPExcel действительно хорош.

0 голосов
/ 06 марта 2010

Я сделал это с PHP, используя XML для электронных таблиц.Проверьте эту ссылку для электронной таблицы XML: http://msdn.microsoft.com/en-us/library/aa140066(office.10).aspx и http://blogs.msdn.com/dmahugh/archive/2006/12/10/images-in-open-xml-documents.aspx для вставки изображений.

...