我知道有很多帖子都有同样的错误,但似乎都没有解决这个特定的问题。
我正在使用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#">