PHPExcel ERR_INVALID_RESPONSE with PHP7.0



我有一个脚本可以创建一个Excel文件并将其导出。这在 PHP5.6 中运行良好,但自从升级到 PHP7.0 后,这不再起作用了。

我发现了几个相关的问题,人们建议安装php7.0-zip,但这并没有解决问题。

在不同的浏览器上也会遇到相同的错误。

它发生在$objWriter->save('php://output');之后

require_once 'includes/PHPExcel/PHPExcel.php';
require_once 'includes/PHPExcel/PHPExcel/Writer/Excel2007.php';
$title = 'Export'. date('d-m-Y');
$count = $_GET['count'];
$objPHPExcel = new PHPExcel();
$objWorkSheet = $objPHPExcel->createSheet(0);
foreach ($_SESSION['tableheaders'][$count] as $column => $val) {
$objWorkSheet->setCellValueByColumnAndRow($column, 1, $val);
$objWorkSheet->getStyleByColumnAndRow($column, 1)->getFont()->setBold(true);
$objWorkSheet->getStyleByColumnAndRow($column, 1)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('C2C2C2');
}
$lastColumnIndex = 'A';
foreach ($_SESSION['tablerows'][$count] as $row => $innerArr) {
foreach ($innerArr as $column => $val) {
$objWorkSheet->setCellValueByColumnAndRow($column, $row + 2, $val);
$objPHPExcel->getActiveSheet()->getColumnDimensionByColumn($column)->setAutoSize(true);
$lastColumnIndex = $objPHPExcel->getActiveSheet()->getColumnDimensionByColumn($column)->getColumnIndex();
}
}
$objPHPExcel->getActiveSheet()->freezePane('A2');
$objPHPExcel->getActiveSheet()->setAutoFilter("A1:{$lastColumnIndex}1");
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Disposition: attachment; filename='{$title}.xlsx'");
// If I die here, the error does not happen but my Excel file is damaged/empty.
$objWriter->save('php://output');

发现问题,在文件PHPExcel/Calculation/Functions.php第 581 行的PHPExcel v1.8.0中,return语句后有一个break;导致错误。

此问题已在最新(和最后一个)版本 1.8.1 中修复

Phpexcel不能很好地与PHP 7.0配合

使用尝试从Phpexcel升级到phpSpreadsheet

php电子表格与php最新版本配合得很好。

最新更新