在做后台任务的时候,经常会遇到需要导出excel表格的情况,php插件里也提供了php_excel组件,功能也十分强大,但是在做导出超大文件的时候就会遇到内存溢出,运行时间超限的问题,并且无法回避,这是因为php_excel会将整个工作表都存在内存当中,数据太多肯定会内存溢; 并且对于excel的操作来说,如果在本地打开一个几十mb大小的excel文件基本也会很慢,再对其进行各种计算或操作也是很不友好的,直对来说csv文件会更加轻量,对服务器来说,csv文件的操作在I/O方面,内存使用相对很小,所以在做作数据导出时基本上都采用csv文件格式。
今天做个小记,代码如下:
//方法1: 打开一次文件,以追加的方式写入数据,会一直占用该文件资源,直到文件被关闭,资源被释放
function exportCsv1(){
$title = ['id','name','time'];
$file = date('Ymd').'_export.csv';
$fp = fopen($file,'w+'); //w+以追加的方式写入文件
if(flock($fp,LOCK_EX)

当使用PHP处理导出Excel的大型数据时,由于php_excel组件将所有数据存储在内存中,可能导致内存溢出和运行超时。为了解决这个问题,本文介绍了使用CSV格式进行数据导出的优势,CSV文件在I/O和内存使用上更高效。文中提供了一段PHP代码示例,并提到在实际场景中,可以将生成的CSV文件上传至云环境,以优化下载流程并降低风险。
最低0.47元/天 解锁文章
852

被折叠的 条评论
为什么被折叠?



