這幾天在整PHP的導出.相對5.0版本.5.1廢棄了vendor和import助手函數.通過composer自動加載完成引入.廢話少說.直接抱起鍵盤就是干
第一步.通過composer安裝phpexcel
在項目根目錄運行?composer require phpoffice/phpexcel
第二步.因為通過composer加載的第三方類,所以直接在頭部引入一下就可以了.
usePHPExcel_IOFactory;usePHPExcel;
$excel = new \PHPExcel();dump($excel);
這樣就可以將類引入了.
導出效果如下
這里也是封裝了一個方法.直接調用下就可以.需要改一個表頭和數據庫字段
publicfunctionclientExcel($data = [],$name ='excel'){? ? ? ? $excel =new\PHPExcel();//引用phpexceliconv('UTF-8','gb2312', $name);//針對中文名轉碼$header = ['訂單編號','訂單狀態','客戶名字','訂單名字','創建時間','訂單備注','開料尺寸','印件色數','印件色別','印刷方式','成品尺寸','印刷板數','千印數量'];//表頭,名稱可自定義$excel->setActiveSheetIndex(0);? ? ? ? $excel->getActiveSheet()->setTitle($name);//設置表名$excel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(18);? ? ? ? $excel->getActiveSheet()->getColumnDimension('B')->setWidth(80);? ? ? ? $letter = ['A','B','C','D','E','F','G','H','I','J','K','L','M'];//列坐標//設置表頭$excel->setActiveSheetIndex(0)? ? ? ? ? ? ->setCellValue('A1','訂單編號')? ? ? ? ? ? ->setCellValue('B1','訂單狀態')? ? ? ? ? ? ->setCellValue('C1','客戶名字')? ? ? ? ? ? ->setCellValue('D1','訂單名字')? ? ? ? ? ? ->setCellValue('E1','創建時間')? ? ? ? ? ? ->setCellValue('F1','訂單備注')? ? ? ? ? ? ->setCellValue('G1','開料尺寸')? ? ? ? ? ? ->setCellValue('H1','印件色數')? ? ? ? ? ? ->setCellValue('I1','印件色別')? ? ? ? ? ? ->setCellValue('J1','印刷方式')? ? ? ? ? ? ->setCellValue('K1','成品尺寸')? ? ? ? ? ? ->setCellValue('L1','印刷板數')? ? ? ? ? ? ->setCellValue('M1','千印數量');//寫入數據foreach($dataas$k => $v) {//從第二行開始寫入數據(第一行為表頭)//$excel->getActiveSheet()->setCellValue('A'.($k+2),$v['gid']);$excel->getActiveSheet()->setCellValue('A'. ($k +2), $v['order_id']."\t");? ? ? ? ? ? $excel->getActiveSheet()->setCellValue('B'. ($k +2), $v['order_status']);? ? ? ? ? ? $excel->getActiveSheet()->setCellValue('C'. ($k +2), $v['name']);? ? ? ? ? ? $excel->getActiveSheet()->setCellValue('D'. ($k +2), $v['order_name']);? ? ? ? ? ? $excel->getActiveSheet()->setCellValue('E'. ($k +2), $v['create_time']);? ? ? ? ? ? $excel->getActiveSheet()->setCellValue('F'. ($k +2), $v['remark']);? ? ? ? ? ? $excel->getActiveSheet()->setCellValue('G'. ($k +2), $v['poper_size']);? ? ? ? ? ? $excel->getActiveSheet()->setCellValue('H'. ($k +2), $v['color_num']);? ? ? ? ? ? $excel->getActiveSheet()->setCellValue('I'. ($k +2), $v['color_type']);? ? ? ? ? ? $excel->getActiveSheet()->setCellValue('J'. ($k +2), $v['print_type']);? ? ? ? ? ? $excel->getActiveSheet()->setCellValue('K'. ($k +2), $v['final_dimension']);? ? ? ? ? ? $excel->getActiveSheet()->setCellValue('L'. ($k +2), $v['print_num']);? ? ? ? ? ? $excel->getActiveSheet()->setCellValue('M'. ($k +2), $v['prints_num']);? ? ? ? }//設置單元格邊框$excel->getActiveSheet()->getStyle("A1:E". (count($data) +1))->getBorders()->getAllBorders()->setBorderStyle();? ? ? ? ob_end_clean();? ? ? ? header('Content-Type: application/vnd.ms-excel');? ? ? ? header('Content-Disposition: attachment;filename="'. $name .'.xls"');? ? ? ? header('Cache-Control: max-age=0');? ? ? ? $res_excel = PHPExcel_IOFactory::createWriter($excel,'Excel2007');? ? ? ? $res_excel->save('php://output');? ? }