Home > Backend Development > PHP Tutorial > phpexcel 生成大数据量excel耗时有关问题

phpexcel 生成大数据量excel耗时有关问题

WBOY
Release: 2016-06-13 13:17:29
Original
1122 people have browsed it

phpexcel 生成大数据量excel耗时问题
最近在用phpexcel做一个报表模板,把用户数据做一些处理,然后导出excel供客户查看。
现在遇到了些问题:
1.耗时问题
经过测试生成一个10000行、6列的只含一个sheet的excel,总共需要耗时26秒多
我把代码内部各部分耗时都打印出来了,发现填充sheet里cell的值和样式很费时,两个加起来要11秒;
还有一个就是保存到本地文件里save('test.xls','Excel5')时间花得也很长需要15秒(不知道为什么这么长)。
填充sheet里cell的值我使用的是phpexcel里的fromArray方法,设置样式也是使用getCell($cellRange)来做的,
请问还有优化的点的方法,能缩短时间吗?

2内存使用问题
上面的情况我代码使用内存最高峰有103m,数据量在大点那就无法想象了,我的数据都是保存在数组中的,
和这个有关吗?有什么好的建议吗?

请帮帮忙,先谢谢了!

------解决方案--------------------
第一个问题不好说
第二个问题,你把一万条数据都放数组里了,当程序开始执行的时候,就一次性吧数据全部加载进内存了,肯定会消耗很多内存,可以考虑将数据写进数据库,然后循环处理,或者写入文件,用指针处理
------解决方案--------------------
from array?也就是先生成一个很大的数组然后插入么?

不是可以循环插入的么?

我之前做过导出约50 0000条数据的excel.确实时间会比较长(10多个sheet,大约30s左右),内存占用也很恐怖。据说新版的phpexcel加入了单元格缓存的功能,可能会对性能提升有所帮助。
------解决方案--------------------
不如写入csv格式咯

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template