PHP 高性能 Excel 扩展 1.2.8 发布,文件读取数据类型可控!
为什么使用 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 \Vtiful\Kernel\Excel($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 \Vtiful\Kernel\Excel($config);
$fileObject->openFile('tutorial.xlsx')
->openSheet();
var_dump($fileObject->nextRow([
\Vtiful\Kernel\Excel::TYPE_STRING,
\Vtiful\Kernel\Excel::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-exp...
Gitee:https://gitee.com/viest/php-ext-xlswriter
PECL:https://pecl.php.net/package/xlswriter
文档
https://xlswriter-docs.viest.me
End
最后的最后请不要忘记star
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 4年前 自动加精
支持大佬
大佬 :+1: :+1: :+1: :+1: :+1:
老哥,我又回来了。请问这个扩展支持读取xls吗,我试了下,读到的咋是空呢
不好意思,我看了一遍文章发现了,支持07以上的xlsx文件读取
1.2.7刚用两天,这么快都升级了。。。
这个扩展牛
我看目前的导出功能只能导出到服务器上,可以直接导出到客户端电脑上吗,浏览器下载那样
可不可把版本号曝露出来
大佬,后面有支持windows读文件的计划吗
支持大佬
支持大佬
谢谢分享
centos7 怎么安装