php匯出csv格式的Excel檔案的實現代碼

來源:互聯網
上載者:User
本篇文章給大家帶來的內容是關於php匯出csv格式的Excel檔案的實現代碼,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所協助。

源碼分析

index.php

<?phprequire_once "./Export.php";//測試資料$headerList= ['列名1','列名2','列名3'];$data = [    ['值1','值2','值3'],    ['值11','值22','值33'],    ['值111','值222','值333']];$fileName = "測試匯出檔案名稱";$tmp = ['備份欄位1','備份值1','','備份欄位2','備份值2'];$export = new Export();$result = $export->exportToCsv($headerList,$data,$fileName,$tmp);

Export.php

<?phpclass export{    /**     * params $headerList 頭部列表資訊(一維數組) 必傳     * params $data 匯出的資料(二維數組)    必傳     * params $filename 檔案名稱轉碼 必傳     * params $tmp 備用資訊(二維數組) 選傳     * PS:出現數字格式化情況,可添加看不見的符號,使其正常,如:"\t"     **/    public function exportToCsv($headerList = [] , $data = [] , $fileName = '' , $tmp = []){        //檔案名稱轉碼        $fileName = iconv('UTF-8', 'GBK', $fileName);        //設定header頭        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");        //備用資訊        foreach ($tmp as $key => $value) {                    $tmp[$key] = iconv("UTF-8", 'GBK', $value);        }                //使用fputcsv將資料寫入檔案控制代碼        fputcsv($fp, $tmp);                //輸出Excel列表名稱資訊        foreach ($headerList as $key => $value) {                    $headerList[$key] = iconv('UTF-8', 'GBK', $value);//CSV的EXCEL支援BGK編碼,一定要轉換,否則亂碼        }                //使用fputcsv將資料寫入檔案控制代碼        fputcsv($fp, $headerList);        //計數器        $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);        }    }}

連結:https://pan.baidu.com/s/1e9BK6l5fY4aDDgYS7CLUig 密碼:v120

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.