xlsWriter-excel解析項目
為什么使用xlswriter
請參考下方對比圖;由于內(nèi)存原因,PHPExcel數(shù)據(jù)量相對較大
的情況下無法正常工作,雖然可以通過修改memory_limit
配置來解決內(nèi)存問題,但完成工作的時間可能會更長;
xlswriter是一個 PHP C 擴展,可用于在 Excel 2007+ XLSX 文件中讀取數(shù)據(jù),插入多個工作表,寫入文本、數(shù)字、公式、日期、圖表、圖片和超鏈接。
它具備以下特性:
一、寫入
- 100%兼容的Excel XLSX文件
- 完整的Excel格式
- 合并單元格
- 定義工作表名稱
- 過濾器
- 圖表
- 數(shù)據(jù)驗證和下拉列表
- 工作表PNG/JPEG圖像
- 用于寫入大文件的內(nèi)存優(yōu)化模式
- 適用于Linux,F(xiàn)reeBSD,OpenBSD,OS X,Windows
- 編譯為32位和64位
- FreeBSD許可證
- 唯一的依賴是zlib
二、讀取
- 完整讀取數(shù)據(jù)
- 光標讀取數(shù)據(jù)
- 按數(shù)據(jù)類型讀取
從這里開始
PECL 倉庫
IDE Helper
composer require viest/php-ext-xlswriter-ide-helper:dev-master
基準測試
測試環(huán)境: Macbook Pro 13 inch, Intel Core i5, 16GB 2133MHz LPDDR3 Memory, 128GB SSD Storage.
導出
兩種內(nèi)存模式導出100萬行數(shù)據(jù)(單行27列,數(shù)據(jù)類型均為字符串,單個字符串長度為19)
- 普通模式:耗時
29S
,內(nèi)存只需2083MB
; - 固定內(nèi)存模式:僅需
52S
,內(nèi)存僅需<1MB
;
導入
100萬行數(shù)據(jù)(單行1列,數(shù)據(jù)類型為INT)
- 全量模式:耗時
3S
,內(nèi)存僅558MB
; - 游標模式:耗時
2.8S
,內(nèi)存僅<1MB
;