注意点:
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文件