V2版本: 改进操作界面,统一表单样式,更多工具支持批量生成,欢迎使用 到达~


文库 阅读
作者: xiaoyu 10/22 21:33:59

php实现导出下载CSV文件

项目开发中,很多时候要将数据导出表格,使用CSV格式文件无疑是很方便和快速的,那么该如何实现呢?

一、导出方法


function outputCsv()
{
    $list = array(
        array('aaa', 'bbb', 'ccc', 'dddd'),
        array('123', '456', '789'),
        array('"aaa"', '"bbb"')
    );
    $title = ["field-1", "field-2", "field-3", "field-4"];
    $filename = "导出.csv";

    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename=' . $filename);
    header('Cache-Control: max-age=0');
    $fp = fopen('php://output', "a");

    mb_convert_variables('GBK', 'UTF-8', $title);
    fputcsv($fp, $title);
    foreach ($list as $row) {
        mb_convert_variables('GBK', 'UTF-8', $row);
        fputcsv($fp, $row);
    }
    fclose($fp);
    exit();
}

二、调用方法

outputCsv()

其它

设置脚本最大执行时间、设置内存限定

如果预期执行时间较长、占用内存较大时,在函数开始位置设定
set_time_limit(0);
ini_set('memory_limit','500M');

数据量非常大,可以定时刷新buff,清空数据缓冲区

$num = 0;
foreach ($list as $row) {
    mb_convert_variables('GBK', 'UTF-8', $row);
    fputcsv($fp, $row);
    if($num == 100000){
        //刷新一下输出buffer,防止缓存数据过多
        ob_flush();
        flush();
        $num = 0;
    }
    $num++;
}

About

项目开发中,很多时候要将数据导出表格,使用CSV格式文件无疑是很方便和快速的,那么该如何实现呢?

Resources

发布

未发布任何资源
首页 喜欢 我的 定制
定制咨询
微信二维码
扫一扫上面的二维码,加我为朋友。
微信扫码周一至周六服务
接定制开发需求