php excel性能,为性能而生, PHP Excel 扩展 xlswriter 1.3.3 发布!

xlswriter 是一个 PHP C 扩展,可用于在 Excel 2007+ XLSX 文件中读取数据,插入多个工作表,写入文本、数字、公式、日期、图表、图片和超链接。

它具备以下特性:

一、写入

100 %兼容的 Excel XLSX 文件

完整的 Excel 格式

合并单元格

定义工作表名称

过滤器

图表

数据验证和下拉列表

工作表 PNG/JPEG 图像

用于写入大文件的内存优化模式

适用于 Linux,FreeBSD,OpenBSD,OS X,Windows

编译为 32 位和 64 位

FreeBSD 许可证

唯一的依赖是 zlib

二、读取

完整读取数据

光标读取数据

按数据类型读取

xlsx 转 CSV

基准测试

测试环境: 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;

部分特性示例

XLSX 转 CSV [常规模式]

应用场景

较多的 xlsx 文件碎片,合并为单一 CSV 文件,统一处理;

xlsx 文件新增的速度大于任务处理速度,可异步将文件转为 CSV 后,使用更高效的工具处理(例如:数据库工具直接导入 CSV );

示例

demo.php

$excel = new \Vtiful\Kernel\Excel(['path' => './tests']);

$filePath = $excel->fileName('tutorial.xlsx', 'TestSheet1')

->header(['String', 'Int', 'Double'])

->data([

['Item_1', 10, 10.9999995],

])

->output();

// 写入方式打开,将文件指针指向文件末尾。

$fp = fopen('./tests/file.csv', 'a');

// 将 xlsx 文件写入 CSV

$resultBoolOne = $excel->openFile('tutorial.xlsx')

->openSheet()

->putCSV($fp);

// 将 xlsx 文件追加写入 CSV

$resultBoolTwo = $excel->openFile('tutorial.xlsx')

->openSheet()

->putCSV($fp);

file.csv

String,Int,Double

Item_1,10,10.9999995

String,Int,Double

Item_1,10,10.9999995

xlsx 转 CSV [回调模式]

应用场景与常规模式类似,不同之处在于上层业务可以在回调函数中加工数据,将 xlsx 中的数据过滤加工并写入 csv。

仓库地址

文档

End

最后的最后请不要忘记 star

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值