项目场景:
项目场景:后台统计报表需要导出excel功能
问题描述
之前服务器是Windows下,导出功能一直正常,最近换成linux服务器之后,导出功能服务器报错500
ob_end_clean(); //清除缓冲区,避免乱码
header('pragma:public');
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle. '.xlsx"');
header('Cache-Control: max-age=0');
header("Content-Disposition:attachment;filename=$fileName.xlsx");//attachment新窗口打印inline本窗口打印
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
原因分析:
查资料发现Linux下Excel从2007改为5即可解决
解决方案:
$objPHPExcel->setActiveSheetIndex(0);
ob_end_clean(); //清除缓冲区,避免乱码
header('pragma:public');
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle. '.xls"');
header('Cache-Control: max-age=0');
header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
备注:
目前问题是解决了,但是原因还没有找到