PHP 高性能 Excel 扩展,五百年配方无内存泄漏

1、创建一个简单的Excel文件:
$config = ['path' => '/home/viest/'];
$excel = new \Vtiful\Kernel\Excel($config);
$excel->fileName('test.xlsx')
->header(['Item', 'Cost'])
->data([
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
])
->output();
2、插入图片
insertImage(int $row, int $column, string $localImagePath)
$excel = new \Vtiful\Kernel\Excel($config);
$freeFile = $excel->fileName("free.xlsx");
$freeFile->insertImage(5, 0, '/vagrant/ASW-G-66.jpg');
$freeFile->output();
3、定义一个公式
insertFormula(int $row, int $column, string $formula)
$excel = new \Vtiful\Kernel\Excel($config);
$freeFile = $excel->fileName("free.xlsx")
->header(['name', 'money']);
for($index = 0; $index < 10; $index++) {
$textFile->insertText($index+1, 0, 'vikin');
$textFile->insertText($index+1, 1, 10);
}
$textFile->insertText(12, 0, "Total");
$textFile->insertFormula(12, 1, '=SUM(B2:B11)');
$freeFile->output();
4、性能如何?
测试脚本
for($index = 0 ; $index < 10000 ; $index++){
$data[$index] = ['viest', 23, 666666666666666666, '银河市地球区程序村PHP组菜鸟湾66号', 15666666666];
}
$timeStart = microtime(true);
$config = [
'path' => '/vagrant/',
];
$excel = new \Vtiful\Kernel\Excel($config);
$textFile = $excel->fileName("test.xlsx")
->header(['name', 'age', 'id_card', 'address', 'phone'])
->data($data)
->outPut();
$timeEnd = microtime(true);
$time = $timeEnd - $timeStart;
echo "导出Excel花费: $time seconds\n";
结果
5、最后附上Github地址
https://github.com/viest/php-excel-writer
bowtie:
本帖已被设为精华帖!
本帖由 Summer
于 8年前 加精
关于 LearnKu
?支持支持!
膜拜 C 大佬..
牛掰~
66666666666666666
棒棒棒
若若的问一下 brew 可以直接安装么?
@736713830 目前还不行哦!
有类似的
PHP_EXCEL_READER么。。。。赞分享,一直用的 laravel-excel ,这个还需要安装扩展呢
默默问句,能加到brew中吗?
https://github.com/mk-j/PHP_XLSXWriter 有没有人对比一下这货,也是一个省内存的excel导出方案
@hujghc 这个可以的,测试了下 25 万行,耗 9.4 秒,文件大小 5.76 MB
@mingyun 我去那测试数据试一下,还是你的数据更好。
测试代码如下
谢谢分享,请问是不是要求 PHP Version >= 7.0?
我在Mac 上通过 brew 同时安装了5.6.32和7.2两个版本的PHP,7.2编译正常,使用正常。5.6执行
make命令时报错:@hanzhao PHP > 7.0
总的来说~~ PHP 装这些太麻烦,又是编译又是安装系统依赖。
要是能像node 一样,让 composer install XXX 就完美了。
npm install 确实方便。
@mingyun 我测了5.3秒, 碉堡了
@hujghc 感谢分享,25万数据5.3秒
new \Vtiful\Kernel\Excel 你好,想问一下这个类是哪里来的?
@杨智鹏 扩展内创建的类
你好,我想问下在导出图片单时候,图片没有将单元格撑开,是要设置单元格大小嘛?还是因为图片太大?如果要设置单元格大小,可否给个demo。
@seven_lvxiujun 可否加一个QQ然后截图我看下,企鹅:986465329
Class 'Vtiful\Kernel\Excel' not found
服务器上一直搞不定,能指点一下吗?
本地没问题。
------
已解决,加载 扩展,php-config 版本的问题。
@andu 如果在使用,请下载最新版本哦,最近有更新
@vikin 三步安装变成一步了啊,腻還。自从用了你的导出,腿也不酸了,腰也不疼了……
新版找机会试试,之前的就先不升级了……
@依剑听雨 我也是这么认为,不过"maatwebsite/excel" 太耗内存了
晃了一圈,还是你最好。让我回来,不再离开……
推荐一个功能丰富、兼容性好、高性能的 Excel 文档基础库:github.com/xuri/excelize