PHP_XLSXWriter
PHP_XLSXWriter 0.39
このライブラリは軽量で、メモリ使用量が最小限になるように設計されています。
Excel 互換のスプレッドシートを (Office 2007 以降) xlsx 形式で出力するように設計されており、基本的な機能のみがサポートされています。
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 秒、0MB のメモリ使用量)
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秒 | 0MB |
| 100000 | 2.7秒 | 0MB |
| 150000 | 4.1秒 | 0MB |
| 200000 | 5.7秒 | 0MB |
| 250000 | 7.0秒 | 0MB |
単純なセル形式はより高度なセル形式にマッピングされます
| 単純な形式 | フォーマットコード |
|---|---|
| 弦 | @ |
| 整数 | 0 |
| 日付 | YYYY-MM-DD |
| 日時 | YYYY-MM-DD HH:MM:SS |
| 時間 | 時:MM:SS |
| 価格 | #,##0.00 |
| ドル | [$$-1009]#,##0.00;[赤]-[$$-1009]#,##0.00 |
| ユーロ | #,##0.00 [$€-407];[レッド]-#,##0.00 [$€-407] |
基本的なセル スタイルはバージョン 0.30 から利用可能です
| スタイル | 許可される値 |
|---|---|
| フォント | Arial、Times New Roman、Courier New、Comic Sans MS |
| フォントサイズ | 8、9、10、11、12 ... |
| フォントスタイル | 太字、斜体、下線、取り消し線、または複数の文字: '太字,斜体' |
| 国境 | 左、右、上、下、または複数、つまり 'top,left' |
| ボーダースタイル | 細い、中くらい、太い、ダッシュドット、ダッシュドットドット、破線、点線、ダブル、ヘア、中ダッシュドット、中ダッシュドットドット、中ダッシュ、斜めダッシュドット |
| 境界線の色 | #RRGGBB、つまり: #ff99cc または #f9c |
| 色 | #RRGGBB、つまり: #ff99cc または #f9c |
| 埋める | #RRGGBB、つまり: #eeffee または #efe |
| 揃える | 一般、左、右、両端揃え、中央 |
| ヴァライン | 下部、中央、分散 |