小兔网

本篇文章带大家介绍PHP如何高效导出Excel(CSV)。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

CSV,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件。

如果你导出的Excel没有什么高级用法的话,只是做导出数据用那么建议使用本方法,要比PHPexcel要高效的多。

二十万数据导出大概需要23秒。

 /** * 导出excel(csv) * @data 导出数据 * @headlist 第一行,列名 * @fileName 输出Excel文件名 */function csv_export($data = array(), $headlist = array(), $fileName) {      header('Content-Type: application/vnd.ms-excel');    header('Content-Disposition: attachment;filename="'.$fileName.'.csv"');    header('Cache-Control: max-age=0');      //打开PHP文件句柄,php://output 表示直接输出到浏览器    $fp = fopen('php://output', 'a');        //输出Excel列名信息    foreach ($headlist as $key => $value) {        //CSV的Excel支持GBK编码,一定要转换,否则乱码        $headlist[$key] = iconv('utf-8', 'gbk', $value);    }      //将数据通过fputcsv写到文件句柄    fputcsv($fp, $headlist);        //计数器    $num = 0;        //每隔$limit行,刷新一下输出buffer,不要太大,也不要太小    $limit = 100000;        //逐行取出数据,不浪费内存    $count = count($data);    for ($i = 0; $i < $count; $i++) {            $num++;                //刷新一下输出buffer,防止由于数据过多造成问题        if ($limit == $num) {             ob_flush();            flush();            $num = 0;        }                $row = $data[$i];        foreach ($row as $key => $value) {            $row[$key] = iconv('utf-8', 'gbk', $value);        }        fputcsv($fp, $row);    }  }
推荐:《PHP视频教程

以上就是详解PHP如何高效导出Excel(CSV)的知识。速戳>>知识兔学习精品课!