PHP高效能Excel擴充套件1.2.8發布,檔案讀取資料型別可控!

2020-07-16 10:05:45

為什麼使用 xlswriter

xlswriter 是一個 PHP C 擴充套件,可用於在 Excel 2007+ XLSX 檔案中讀取資料,插入多個工作表,寫入文字、數位、公式、日期、圖表、圖片和超連結。

請參考下方對比圖;由於記憶體原因,PHPExcel 與 PHPSpreadSheet 在資料量 相對較大 的情況下無法正常工作,雖然可以通過 修改memory_limit 設定來解決記憶體問題,但完成工作的時間可能會更長;

31b9a2aecf623a68e8037fc71e81f0f.png

它支援以下功能:

一、寫入

● 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其它相關文章!