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 导出大批量数据解决方案的主要内容,如果未能解决你的问题,请参考以下文章

使用PHPExcel实现数据批量导出为excel表格

java导出大批量(百万以上)数据的excel文件

PHP怎样将查询出来的数据导出成excel表格?

Thinkphp excel批量导出-分表导出

怎么解决从php导出的excel文件打开时弹出文件格式不一致问题(还有无边框显示问题,见“问题补充”)

C# winform DevExpress GridControl 大批量数据(9万行+4百列)导出Excel报错,内存溢出,怎么办?