Tpona
@Tpona
Ужасный перфекционист

Как быстро сформировать сложный Excel-документ?

Приветы!

PHPExcel когда у нас от 10000 строк - медленно.
Пробовали на фронтенде использовать KendoUI, крутая вещь, быстро, но проблема - глюк с границами объединенной ячейки, в excel отображаются частично, в либреофисе - норм.

Какие еще варианты есть на сегодняшний день?
  • Вопрос задан
  • 1729 просмотров
Пригласить эксперта
Ответы на вопрос 3
PQR
@PQR
На тостере есть похожий вопрос по оптимизации генерации Excel из PHP, посмотрите, там дельные ответы: Оптимизация генерации excel из php?

Расскажу также свою историю, не про запись, а про чтение большого Excel файла (несколько десятков страниц, на каждой странице 1000+ строк * 30 столбцов). PHPExcel работал но медленно. Классическая PEAR библиотека оказалась быстрее в 2 раза, но и она в итоге отрабатывала за 60+ секунд (время чтения xls файла в память PHP). Поскольку входной формат файла был известен заранее, я открыл исходники и начал выпиливать оттуда фишки, которые мне не нужны, удаляя лишний код! Некоторые функции вручную инлайнил. В итоге время чтения сократилось до 5 секунд. Резюме: если формат зафиксирован и гибкость не нужна, узкозаточенное решение (после некоторых усилий по заточке) даст хороший результат!

Также на этот вопрос есть классический ответ на StackOverflow, который собрал все альтернативы: stackoverflow.com/questions/3930975/alternative-fo...

Процитирую здесь, чтобы далеко не ходить или на случай если stackoverflow.com будет не доступен (валидность всех ссылок не проверял):

For Writing Excel

PEAR's PHP_Excel_Writer (xls only)
php_writeexcel from Bettina Attack (xls only)
XLS File Generator commercial and xls only
Excel Writer for PHP from Sourceforge (spreadsheetML only)
Ilia Alshanetsky's Excel extension now on github (xls and xlsx, and requires commercial libXL component)
PHP's COM extension (requires a COM enabled spreadsheet program such as MS Excel or OpenOffice Calc running on the server)
The Open Office alternative to COM (PUNO) (requires Open Office installed on the server with Java support enabled)
PHP-Export-Data by Eli Dickinson (Writes SpreadsheetML - the Excel 2003 XML format, and CSV)
Oliver Schwarz's php-excel (SpreadsheetML)
Oliver Schwarz's original version of php-excel (SpreadsheetML)
excel_xml (SpreadsheetML, despite its name)... link reported as broken
The tiny-but-strong (tbs) project includes the OpenTBS tool for creating OfficeOpenXML documents (OpenDocument and OfficeOpenXML formats)
SimpleExcel Claims to read and write Microsoft Excel XML / CSV / TSV / HTML / JSON / etc formats
KoolGrid xls spreadsheets only, but also doc and pdf
PHP_XLSXWriter OfficeOpenXML
PHP_XLSXWriter_plus OfficeOpenXML, fork of PHP_XLSXWriter
php_writeexcel xls only (looks like it's based on PEAR SEW)
spout OfficeOpenXML (xlsx) and CSV
Slamdunk/php-excel (xls only) looks like an updated version of the old PEAR Spreadsheet Writer

For Reading Excel

php-spreadsheetreader reads a variety of formats (.xls, .ods and .csv)
PHP-ExcelReader (xls only)
PHP_Excel_Reader (xls only)
PHP_Excel_Reader2 (xls only)
XLS File Reader Commercial and xls only
SimpleXLSX From the description it reads xlsx files , though the author constantly refers to xls
PHP Excel Explorer Commercial and xls only
Ilia Alshanetsky's Excel extension now on github (xls and xlsx, and requires commercial libXL component)
PHP's COM extension (requires a COM enabled spreadsheet program such as MS Excel or OpenOffice Calc running on the server)
The Open Office alternative to COM (PUNO) (requires Open Office installed on the server with Java support enabled)
Nuovo's spreadsheet-reader (csv, xls, xlsx, and ods)
SimpleExcel Claims to read and write Microsoft Excel XML / CSV / TSV / HTML / JSON / etc formats
PHPExcleReader Is just a ZIP with an old version of PHPExcel
Akeneo Labs Spreadsheet Parser OfficeOpenXML (.xlsx) and CSV files
spout OfficeOpenXML (xlsx) and CSV
xhook's php-spreadsheetreader Claims to do most formats
Ответ написан
Комментировать
Если вам нужна просто табличка (без стилей, макросов и прочих свистелок), то может имеет смысл формировать CSV?
Если несколько вкладок надо, то уже можно подумать.
Но в VBA порой туго с обратной совместимостью и можете напороться на то, что скрипт перестанет работать через пару лет в новой версии офиса.
Ответ написан
Комментировать
initrd0
@initrd0
Это я =)
В свое время простой HTML таблицей отдавал пользователю с заголовками Excel - никто не жаловался (включая заказчика). Новые версии экселя понимают такой формат
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект