php Excel 导出大批量数据解决方案
Posted weedsyl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php Excel 导出大批量数据解决方案相关的知识,希望对你有一定的参考价值。
1,通过php输出流方式导出
php://output是一个可写的输出流,允许程序像操作文件一样将输出写入到输出流中,PHP会把输出流中的内容发送给web服务器并返回给发起请求的浏览器 保存为csv文件
2, 刷新一下输出buffer,防止由于数据过多造成问题 ;
ob_flush(); flush();配合使用
3,实现代码
/** * 导出CSV * @param $rows * @param string $file_name */ function exportCsv($rows, $file_name = ‘数据‘) { $filename = $file_name. date(‘YmdHi‘) . ‘.csv‘; //设置文件名 header("Content-type:text/csv"); header("Content-Disposition:attachment;filename="" . $filename . """); header(‘Cache-Control:must-revalidate,post-check=0,pre-check=0‘); header(‘Expires:0‘); header(‘Pragma:public‘); $fp = fopen(‘php://output‘, ‘a‘); $cnt = 0; // 计数器 $limit = 5000; // 每隔$limit行,刷新输出buffer //加上bomtou utf-8正常显示,但编辑之后会有问题,要另存为xls、xlsb、xlsx等格式 fwrite($fp, "xEFxBBxBF"); foreach ($rows as $row) { $cnt++; if ($limit == $cnt) { //刷新输出buffer,防止由于数据过多造成问题 ob_flush(); flush(); $cnt = 0; } fputcsv($fp, $row); unset($v); unset($row); } }
以上是关于php Excel 导出大批量数据解决方案的主要内容,如果未能解决你的问题,请参考以下文章
怎么解决从php导出的excel文件打开时弹出文件格式不一致问题(还有无边框显示问题,见“问题补充”)
C# winform DevExpress GridControl 大批量数据(9万行+4百列)导出Excel报错,内存溢出,怎么办?