注意點:
1:還是那個問題 tp5.1廢除了助手函數vendor和import函數 我用的require原始的引入
2:我之前用封裝導入方法 但是導出的表列寬不夠 導致數據在excel表格中得自己調整寬度才顯示正確 比如2018-08-08 打開文件變成######,所以我還是用的phpexcel插件
下面是代碼:
$list = Db::name('user')->select();//導出的數據
$path = dirname(__FILE__); //找到當前腳本所在路徑
require'../extend/PHPExcel/PHPExcel.php';
$PHPExcel = new \PHPExcel();
$PHPSheet = $PHPExcel->getActiveSheet();
$PHPSheet->setTitle("demo"); //給當前活動sheet設置名稱
$PHPSheet->setCellValue("A1", "快遞編號")//導出的表頭
->setCellValue("B1", "日期")
->setCellValue("C1", "快遞郵費")
->setCellValue("D1", "對賬結果")
->setCellValue("E1", "差異的運費")
->setCellValue("F1", "發貨單號備註")
->setCellValue("G1", "配送中心")
->setCellValue("H1", "快遞公司");
$PHPSheet->getColumnDimension('A')->setWidth(20);//設置列寬度
$PHPSheet->getColumnDimension('B')->setWidth(20);
$PHPSheet->getColumnDimension('C')->setWidth(20);
$PHPSheet->getColumnDimension('D')->setWidth(20);
$PHPSheet->getColumnDimension('E')->setWidth(20);
$PHPSheet->getColumnDimension('F')->setWidth(45);
$PHPSheet->getColumnDimension('G')->setWidth(20);
$PHPSheet->getColumnDimension('H')->setWidth(20);
$i = 2;
foreach($list as $data){//數據表對應字段
$PHPSheet->setCellValue("A" . $i, $data['expressNum'])
->setCellValue("B" . $i, date("Y-m-d",$data['createTime']))
->setCellValue("C" . $i, $data['ps_fee'])
->setCellValue("D" . $i, $data['result'])
->setCellValue("E" . $i, $data['differential'])
->setCellValue("F" . $i, $data['remark'])
->setCellValue("G" . $i, $data['companyName'])
->setCellValue("H" . $i, $data['kdname']);
$i++;
}
$PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel, "Excel2007");
header('Content-Disposition: attachment;filename="表單數據.xlsx"');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
$PHPWriter->save("php://output"); //表示在$path路徑下面生成demo.xlsx文件