public function excelExport($xlsCell, $xlsData, $xlsName)
{
require(Env::get('root_path') . 'vendor/PHPExcel/PHPExcel.php');
$objPHPExcel = new \PHPExcel();
//Set properties 设置文件属性
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw");
$objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw");
$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");
$objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");
$objPHPExcel->getProperties()->setKeywords("office 2007 openxml php");
$objPHPExcel->getProperties()->setCategory("Test result file");
//表头
$column = 1;
$span = ord("A");
foreach ($xlsCell as $v) {
$j = chr($span);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($j . $column, $v['1']);
$span++;
}
$column++;
$objActSheet = $objPHPExcel->getActiveSheet();
foreach ($xlsData as $key => $rows) {
$span = ord('A');
foreach ($xlsCell as $value) {
$j = chr($span);
//判断是不是时间戳
if (is_int($rows[$value['0']])) {
if (strtotime(date('Y-m-d H:i:s', $rows[$value['0']])) === $rows[$value['0']]) {
$rows[$value['0']] = date('Y-m-d H:i:s', $rows[$value['0']]);
}
}
$objActSheet->setCellValue($j . $column, $rows[$value['0']]);
$span++;
}
$column++;
}
$objPHPExcel->setActiveSheetIndex(0);
ob_end_clean();
ob_start();
header("Content-Type: application/force-download");
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Disposition:attachment;filename =" . str_ireplace('+', '%20', URLEncode($xlsName)) . '.xlsx');
header('Cache-Control: max-age=0');
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
}
导出数据
public function alllog(Request $request)
{
$data = $request->param();
$where = [];
$list = Alllog::where($where)->order('id desc')->all();
//导出
$xlsData = $list;
$xlsName = "进出厂记录表";
$xlsCell = array(
array('carNum', '车牌', 20),
array('one_gate', '第一入闸门时间', 40),
);
$this->excelExport($xlsCell, $xlsData, $xlsName);
}