日常工作中,导出数据是很常见的需求,常规来说一般会采用phpexcel、PhpSpreadsheet或其他插件导出数据,不过有时候可能需要更快速的导出,又没有这些插件的时候,原生导出csv的方法就比较好用了,实例代码如下:
//这里是thinkphp3.2的代码示例,不同的框架略作改动即可使用。
//浏览器通过get方式可直接下载。
public function import_order(){
set_time_limit(0);
$fileName = date('YmdHis', time());#随机文件名,避免重复
header('Content-Type: application/vnd.ms-execl');
header('Content-Disposition: attachment;filename="订单数据' . $fileName . '.csv"');
$fp = fopen('php://output', 'a');
$list = M('import_fail')
->where(['state' => 0])
->select();#获取数据集(array)
$title = ['序号','订单号','导入时间'];
foreach ($title as $key => $value) {
$title[$key] = iconv('UTF-8', 'GBK', $value);
}
fputcsv($fp, $title);
foreach($list as $key => $value){
//加\t可以使得订单号以文本形式显示。
$value['order_num'] .= "\t";
fputcsv($fp, $value);
}
ob_flush();
flush();
}