PHP yii2.0利用PHPexcel導出excel

可以用composer來安裝PHPexcel,也可以在下載以後放入項目目錄。

composer安裝:

composer require "phpoffice/phpexcel": "*"

PHPexcel下載地址:https://github.com/PHPOffice/PHPExcel/archive/1.8.zip

做完準備工作我們就可以開始調用了。

composer安裝的話,直接應用命名空間就可以

下載的類可以這樣調用:

require dirname(dirname(__FILE__)).'/PHPExcel/PHPExcel.php';

然後我們就可以使用啦,以下是簡單使用的代碼:

            $objectPHPExcel = new \PHPExcel();
            //設置表格頭的輸出
            $objectPHPExcel->setActiveSheetIndex()->setCellValue('A1', '管家');
            $objectPHPExcel->setActiveSheetIndex()->setCellValue('B1', '協助');
            $objectPHPExcel->setActiveSheetIndex()->setCellValue('C1', '最新報價1');
            $objectPHPExcel->setActiveSheetIndex()->setCellValue('D1', '最新目的地1');
            $objectPHPExcel->setActiveSheetIndex()->setCellValue('E1', '最新報價2');
            $objectPHPExcel->setActiveSheetIndex()->setCellValue('F1', '最新目的地2');
            $objectPHPExcel->setActiveSheetIndex()->setCellValue('G1', '訂單編號');
            $objectPHPExcel->setActiveSheetIndex()->setCellValue('H1', '接單日期');
            $objectPHPExcel->setActiveSheetIndex()->setCellValue('I1', '企業名稱');
            $objectPHPExcel->setActiveSheetIndex()->setCellValue('J1', '出行日期');
            $objectPHPExcel->setActiveSheetIndex()->setCellValue('K1', '天數');
            $objectPHPExcel->setActiveSheetIndex()->setCellValue('L1', '人數');
            $objectPHPExcel->setActiveSheetIndex()->setCellValue('M1', '一級狀態');
            $objectPHPExcel->setActiveSheetIndex()->setCellValue('N1', '二級狀態');
            $objectPHPExcel->setActiveSheetIndex()->setCellValue('O1', '最近更新時間');
            $objectPHPExcel->setActiveSheetIndex()->setCellValue('P1', '最新聯繫記錄');


            //指定開始輸出數據的行數
            $n = 2;
            foreach ($rrow as $v){
                $objectPHPExcel->getActiveSheet()->setCellValue('A'.($n) ,$v['real_name']);
                $objectPHPExcel->getActiveSheet()->setCellValue('B'.($n) ,$v['adju_name']);
                $objectPHPExcel->getActiveSheet()->setCellValue('C'.($n) ,$v['latest_offer1']);
                $objectPHPExcel->getActiveSheet()->setCellValue('D'.($n) ,$v['latest_destination1']);
                $objectPHPExcel->getActiveSheet()->setCellValue('E'.($n) ,$v['latest_offer2']);
                $objectPHPExcel->getActiveSheet()->setCellValue('F'.($n) ,$v['latest_destination2']);
                $objectPHPExcel->getActiveSheet()->setCellValue('G'.($n) ,$v['id']);
                $objectPHPExcel->getActiveSheet()->setCellValue('H'.($n) ,$v['created_at']);
                $objectPHPExcel->getActiveSheet()->setCellValue('I'.($n) ,$v['company_name']);
                $objectPHPExcel->getActiveSheet()->setCellValue('J'.($n) ,$v['time_start']);
                $objectPHPExcel->getActiveSheet()->setCellValue('K'.($n) ,$v['route_day_name']);
                $objectPHPExcel->getActiveSheet()->setCellValue('L'.($n) ,$v['people_num']);
                $objectPHPExcel->getActiveSheet()->setCellValue('M'.($n) ,$v['status1']);
                $objectPHPExcel->getActiveSheet()->setCellValue('N'.($n) ,$v['status2']);
                $objectPHPExcel->getActiveSheet()->setCellValue('O'.($n) ,$v['Ccreated_at']);
                $objectPHPExcel->getActiveSheet()->setCellValue('P'.($n) ,$v['message']);
                $n = $n +1;
            }
            ob_end_clean();
            ob_start();
            header('Content-Type : application/vnd.ms-excel');

            //設置輸出文件名及格式
            header('Content-Disposition:attachment;filename="客戶數據'.date("YmdHis").'.xlsx"');

            //導出.xls格式的話使用Excel5,若是想導出.xlsx需要使用Excel2007
            $objWriter= \PHPExcel_IOFactory::createWriter($objectPHPExcel,'Excel2007');
            $objWriter->save('php://output');
            ob_end_flush();

            //清空數據緩存
            unset($rrow);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章