為什麼使用 xlswriter
xlswriter 是一個 PHP C 擴充套件,可用於在 Excel 2007+ XLSX 檔案中讀取資料,插入多個工作表,寫入文字、數位、公式、日期、圖表、圖片和超連結。
請參考下方對比圖;由於記憶體原因,PHPExcel 與 PHPSpreadSheet 在資料量 相對較大 的情況下無法正常工作,雖然可以通過 修改memory_limit 設定來解決記憶體問題,但完成工作的時間可能會更長;
它支援以下功能:
一、寫入
● 100%相容的 Excel XLSX 檔案
● 完整的 Excel 格式
● 合併單元格
● 定義工作表名稱
● 過濾器
● 圖表
● 資料驗證和下拉選單
● 工作表 PNG/JPEG 影象
● 用於寫入大檔案的記憶體優化模式
● 適用於 Linux,FreeBSD,OpenBSD,OS X,Windows
● 編譯為 32 位和 64 位
● FreeBSD 許可證
● 唯一的依賴是 zlib
二、讀取
● 完整讀取資料
● 游標讀取資料
● 按資料型別讀取
1.2.8 新特性
1、新增日期寫入
$config = [ 'path' => './tests' ]; $fileObject = new VtifulKernelExcel($config); $fileObject = $fileObject->fileName('tutorial.xlsx'); $filePath = $fileObject->header(['date']) ->insertDate(1, 0, time(), 'mmm d yyyy hh:mm AM/PM') ->output();
2、新增自定義單元格資料型別讀取
$config = [ 'path' => './tests', ]; $fileObject = new VtifulKernelExcel($config); $fileObject->openFile('tutorial.xlsx') ->openSheet(); var_dump($fileObject->nextRow([ VtifulKernelExcel::TYPE_STRING, VtifulKernelExcel::TYPE_TIMESTAMP, ]));
基準測試
測試環境:
Macbook Pro 13 inch Intel Core i5 16GB 2133MHz LPDDR3 Memory 128GB SSD Storage.
匯出
兩種記憶體模式,匯出 100W 行資料,單行 27 列,每個單元格 19 個中文字元
● 常規模式:耗時 29S,記憶體占用 2083MB;
● 固定記憶體模式:耗時 52S, 記憶體占用 <1MB;
讀取
讀取 100W 行資料,每行 1 列,單元格資料為 int
● 全量讀取:耗時 3S, 記憶體占用 558MB;
● 游標讀取:耗時 2.8S, 記憶體占用 <1MB;
倉庫地址
Github:https://github.com/viest/php-ext-excel-export
Gitee:https://gitee.com/viest/php-ext-xlswriter
PECL:https://pecl.php.net/package/xlswriter
文件
https://xlswriter-docs.viest.me
End
最後的最後請不要忘記 star
以上就是PHP高效能Excel擴充套件1.2.8發布,檔案讀取資料型別可控!的詳細內容,更多請關注TW511.COM其它相關文章!