PHP_XLSXWriter
PHP_XLSXWriter 0.39
Эта библиотека спроектирована так, чтобы быть легкой и иметь минимальное использование памяти.
Он предназначен для вывода электронных таблиц, совместимых с Excel, в формате xlsx (Office 2007+) и поддерживает только базовые функции:
Никогда больше не исчерпайте память с помощью PHPExcel.
Простой пример PHP CLI:
$ data = array (
array ( ' year ' , ' month ' , ' amount ' ),
array ( ' 2003 ' , ' 1 ' , ' 220 ' ),
array ( ' 2003 ' , ' 2 ' , ' 153.5 ' ),
);
$ writer = new XLSXWriter ();
$ writer -> writeSheet ( $ data );
$ writer -> writeToFile ( ' output.xlsx ' );
Простые/расширенные форматы ячеек:
$ header = array (
' created ' => ' date ' ,
' product_id ' => ' integer ' ,
' quantity ' => ' #,##0 ' ,
' amount ' => ' price ' ,
' description ' => ' string ' ,
' tax ' => ' [$$-1009]#,##0.00;[RED]-[$$-1009]#,##0.00 ' ,
);
$ data = array (
array ( ' 2015-01-01 ' , 873 , 1 , ' 44.00 ' , ' misc ' , ' =D2*0.05 ' ),
array ( ' 2015-01-12 ' , 324 , 2 , ' 88.00 ' , ' none ' , ' =D3*0.05 ' ),
);
$ writer = new XLSXWriter ();
$ writer -> writeSheetHeader ( ' Sheet1 ' , $ header );
foreach ( $ data as $ row )
$ writer -> writeSheetRow ( ' Sheet1 ' , $ row );
$ writer -> writeToFile ( ' example.xlsx ' );
50000 строк: (1,4 с, использование памяти 0 МБ)
include_once ( " xlsxwriter.class.php " );
$ writer = new XLSXWriter ();
$ writer -> writeSheetHeader ( ' Sheet1 ' , array ( ' c1 ' => ' integer ' , ' c2 ' => ' integer ' , ' c3 ' => ' integer ' , ' c4 ' => ' integer ' ) );
for ( $ i = 0 ; $ i < 50000 ; $ i ++)
{
$ writer -> writeSheetRow ( ' Sheet1 ' , array ( $ i , $ i + 1 , $ i + 2 , $ i + 3 ) );
}
$ writer -> writeToFile ( ' huge.xlsx ' );
echo ' # ' . floor (( memory_get_peak_usage ())/ 1024 / 1024 ). " MB " . "n" ;
ряды | время | память |
---|---|---|
50000 | 1,4 с | 0 МБ |
100000 | 2,7 с | 0 МБ |
150000 | 4,1 с | 0 МБ |
200000 | 5,7 с | 0 МБ |
250000 | 7.0 с | 0 МБ |
Простые форматы ячеек сопоставляются с более продвинутыми форматами ячеек.
простые форматы | код формата |
---|---|
нить | @ |
целое число | 0 |
дата | ГГГГ-ММ-ДД |
дата и время | ГГГГ-ММ-ДД ЧЧ:ММ:СС |
время | ЧЧ:ММ:СС |
цена | #,##0.00 |
доллар | [$$-1009]#,##0.00;[RED]-[$$-1009]#,##0.00 |
евро | #,##0.00 [$€-407];[RED]-#,##0.00 [$€-407] |
Основные стили ячеек доступны с версии 0.30.
стиль | разрешенные значения |
---|---|
шрифт | Arial, Times New Roman, Courier New, Comic Sans MS |
размер шрифта | 8,9,10,11,12... |
стиль шрифта | жирный, курсив, подчеркивание, зачеркивание или множественное начертание, например: «жирный, курсив» |
граница | слева, справа, сверху, снизу или несколько, например: «сверху, слева» |
бордюрный стиль | тонкий, средний, толстый, DashDot, DashDotDot, пунктирный, пунктирный, двойной, волосы, MediumDashDot, MediumDashDotDot, MediumDashed, slantDashDot |
цвет границы | #RRGGBB, т. е.: #ff99cc или #f9c. |
цвет | #RRGGBB, т. е.: #ff99cc или #f9c. |
наполнять | #RRGGBB, т.е.: #eeffee или #efe |
согласовываться | общий, левый, правый, обосновать, центр |
значимый | нижний, центральный, распределенный |