Skip to content Skip to sidebar Skip to footer

PHP导出csv数据

日常工作中,导出数据是很常见的需求,常规来说一般会采用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();
}

Leave a comment