工作中经常会遇到导出数据的功能,当导出的数据比较多时,导出excel比较消耗内存,也比较慢。
这里线上一个导出CSV的方法, 此方法与网上其他方法不同,此方法是生成文件,然后再一行一行的往文件插入信息。
可以大大提升导出数据的效率,废话不多说,上代码
/**
* 公用导出excel数据方法
* @param array $result 二维数组
* @param string $title 标题,对应数组每一个值
* @param string $fileName 文件地址
*/
public function loadingLocalExcel($result, $title, $fileName)
{
$fp = fopen(dirname(dirname(__FILE__)) . iconv("UTF-8", "GBK", $fileName), 'w');
fwrite($fp, chr(0XEF) . chr(0xBB) . chr(0XBF)); // 这个很关键,据说是处理BOM头
fputcsv($fp, $title); //表头
foreach ($result as $vo) {
fputcsv($fp, $vo);
}
fclose($fp);
}