PHPExcel ERR_INVALID_RESPONSE 与 PHP7.0

标签 php phpexcel php-7

我有一个脚本可以创建 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 v1.8.0 文件 PHPExcel/Calculation/Functions.php 的第 581 行有一个 break;在导致错误的 return 语句之后。

这已在最新(也是最后一个)版本 1.8.1 中修复

关于PHPExcel ERR_INVALID_RESPONSE 与 PHP7.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49007548/

相关文章:

PHP - 从列表中找到最接近预定义 RGB 的 RGB

php - 如何在PHP中实现汇率?

PHPExcel 保存文件

php - php中的字符串类型大小写,是字符串还是字符串?

php - 如何更改 shell 上的默认 PHP 基本版本?

php - 在 Linux 上从控制台运行脚本

php - "Cannot pass parameter 2 by reference"PHP错误

PHPExcel 和小计

PHPExcel在列和单元格中打印

PHP 通知 : Array to string conversion only on PHP 7