PhpSpreadsheet - 升级到 PHP 7.4.6 - 现在设置公式导致"尝试访问类型为 null 的值的数组偏移量"异常



我知道有很多帖子都有同样的错误,但似乎都没有解决这个特定的问题。

我正在使用PHPSpreadsheet将一个应用程序从PHP7.3.22升级到7.4.6。PHP 7.4.6在单元格中设置公式时抛出一个null异常错误。下面的片段说明了这个问题:

$file_name = './uploads/helloworld.xlsx';  
$spreadsheet = new PhpOfficePhpSpreadsheetSpreadsheet();
// these lines work with PHP Versions 7.3.22 and 7.4.6
$spreadsheet->getActiveSheet()->setCellValue('A1', '1'); 
$spreadsheet->getActiveSheet()->setCellValue('A2', '2'); 
// this line causes the exception only with PHP Version 7.4.6
$spreadsheet->getActiveSheet()->setCellValue('A3', "=A1+A2");
$writer = new PhpOfficePhpSpreadsheetWriterXlsx($spreadsheet);

// the exception gets thrown here
$writer->save($file_name);
$spreadsheet->disconnectWorksheets();
unset($spreadsheet);

任何建议都很感激-谢谢-Jon

以下是我解决这个问题的方法,以防它帮助其他像我一样刚接触PHP的人。

我在任何地方都找不到这篇文档,但PHP 7.3和PHPSpreadsheet 1.6.0显然存在兼容性问题。因此,解决方案就是升级PHPSpreadsheet。以下是我解决这个问题的步骤:

为了确定我安装的版本,我这样做了:

composer show 

这显示我的安装版本为1.6.0。当前版本(在我写这篇文章的时候(是1.8.0。

为了升级到最新版本,我这样做了:

composer require phpoffice/phpspreadsheet -w --prefer-source

这将PHPSpreadhseet从1.6.0升级到1.8.0,从而解决了问题。

"。。。正是在这样的时刻,我想念C#">

相关内容

最新更新