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