xlswriter是一个 PHP C 扩展,可用于在 Excel 2007+ XLSX 文件中读取数据、插入多个工作表,写入文本、数字、公式、日期、图表、图片和超链接。
GitHubgithub.com它具备以下特性:
一、写入
- 100%兼容的Excel XLSX文件
- 完整的Excel格式
- 合并单元格
- 定义工作表名称
- 过滤器
- 图表
- 工作表PNG/JPEG图像
- 用于写入大文件的内存优化模式
- 适用于Linux,FreeBSD,OpenBSD,OS X,Windows
- 编译为32位和64位
- FreeBSD许可证
- 唯一的依赖是zlib
二、读取
- 完整读取数据
- 光标读取数据
- 按数据类型读取
三、工具
- XLSX 转 CSV
基准测试
测试环境
Macbook Pro 13 inch
CPU:Intel Core i5
Memory:16GB 2133MHz LPDDR3
测试数据(20列)
ABCDEFGHIJKLMNOPQRSTUVWXYZ
导出
两种内存模式导出50万行数据(每行20列)
- 普通模式:耗时
16S
,内存991.8 MB
; - 固定内存模式:耗时
24S
,内存<1 MB
;
读取
50万行数据(单行20列)
- 游标模式:耗时
23S
,内存仅<1 MB
; - 回调模式:耗时
24S
,内存仅<1 MB
;
安装
Unix
pecl install xlswriter
Windows
DLL 下载途径
- GitHub Release
- PECL
快速上手
普通模式导出
$config = [
'path' => '/home/viest/xlswriter'
];
$excel = new VtifulKernelExcel($config);
$excel->fileName('tutorial.xlsx', 'sheet1')
->header(['Item', 'Cost'])
->data([
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
])
->output();
固定内存模式导出
$config = [
'path' => '/home/viest/xlswriter'
];
$excel = new VtifulKernelExcel($config);
$excel->constMemory('tutorial.xlsx', 'sheet1')
->header(['Item', 'Cost'])
->data([
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
])
->output();
游标模式读取
$config = [
'path' => '/home/viest/xlswriter'
];
$excel = new VtifulKernelExcel($config);
$sheet = $excel->openFile('tutorial.xlsx')
->openSheet();
while ($row = $sheet->nextRow()) {
//
}
回调模式读取
$config = [
'path' => '/home/viest/xlswriter'
];
$excel = new VtifulKernelExcel($config);
$excel
->openFile('tutorial.xlsx')
->nextCellCallback(function ($row, $cell, $data) {
//
});