PHP_XLSXWriter
PHP_XLSXWriter 0.39
이 라이브러리는 경량으로 설계되었으며 메모리 사용량이 최소화됩니다.
이는 기본 기능만 지원되는 (Office 2007+) xlsx 형식의 Excel 호환 스프레드시트를 출력하도록 설계되었습니다.
다시는 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 |
| 시간 | HH:MM:SS |
| 가격 | #,##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 |
| 정렬하다 | 일반, 왼쪽, 오른쪽, 양쪽 맞춤, 가운데 |
| valign | 하단, 중앙, 분산 |