高效導出excel表格(.csv)格式(PHP語法)

大家好,給大家推出一套導出excel的方法,親測有效^_^!!!!
/**
 * 導出excel(csv)
 * @data 導出數據
 * @headlist 第一行,列名
 * @fileName 輸出Excel文件名
 */
   public 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);
       }
   }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章