V
V
Valentine2016-12-09 11:21:51
PHP
Valentine, 2016-12-09 11:21:51

How to quickly create a complex Excel document?

Hello!
PHPExcel when we have from 10000 rows - slowly.
We tried to use KendoUI on the frontend, it's a cool thing, it's fast, but the problem is a glitch with the borders of the merged cell, in excel they are displayed partially, in libreoffice - normal.
What other options are there today?

Answer the question

In order to leave comments, you need to log in

3 answer(s)
P
PQR, 2016-12-15
@PQR

There is a similar question on the toaster about optimizing Excel generation from PHP, look, there are good answers: Optimizing excel generation from php?
I will also tell my story, not about writing, but about reading a large Excel file (several dozen pages, each page has 1000+ rows * 30 columns). PHPExcel worked but slowly. The classic PEAR library turned out to be 2 times faster, but it also completed in 60+ seconds (the time it took to read the xls file into PHP memory). Since the input file format was known in advance, I opened the sources and started cutting out chips that I didn’t need from there, removing extra code! Some functions were manually inlined. As a result, the reading time was reduced to 5 seconds. Summary: if the format is fixed and flexibility is not needed, a narrowly sharpened solution (after some sharpening efforts) will give a good result!
There is also a classic answer to this question on StackOverflow that has collected all the alternatives:stackoverflow.com/questions/3930975/alternative-fo... I
'll quote here so as not to go too far or in case stackoverflow.com is not available (I didn't check the validity of all links):
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 )
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)
SimpleExcelClaims 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

M
Miguel De Cervantes, 2016-12-15
@migs911

If you just need a table (without styles, macros and other whistles), then maybe it makes sense to generate CSV?
If you need several tabs, then you can already think.
But in VBA, backward compatibility is sometimes tight and you can run into the fact that the script will stop working in a couple of years in the new version of office.

S
Sergey, 2016-12-18
@initrd0

At one time, a simple HTML table was given to the user with Excel headers - no one complained (including the customer). Newer versions of Excel understand this format

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question