> 백엔드 개발 > PHP 튜토리얼 > phpexcel 生成大数据量excel耗时有关问题

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

WBOY
풀어 주다: 2016-06-13 13:17:29
원래의
1137명이 탐색했습니다.

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格式咯

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿