PHPexcel公式IFERROR

PHPexcel formula IFERROR

我正在使用 PHP excel 1.8.0。我到处搜索,但我不明白为什么会出现以下错误并且我的 excel 文件已损坏。

Uncaught exception 'PHPExcel_Calculation_Exception' with message 'Worksheet!K2 -> Formula Error: An unexpected error occured'

我必须使用 ISO 8859-2 编码

$formula = iconv('ISO-8859-2', 'UTF-8//IGNORE//TRANSLIT', '=IFERROR(IF(OR(C'.$row.'="string1";C'.$row.'="strin2");D'.$row.';" ");" ")');
$objPHPExcel->getActiveSheet()->setCellValue($where, $formula);

我尝试在没有 = 的情况下设置公式。之后,当我打开 excel 文件时,所有公式都已正确设置,没有 = 标记。然后,如果我将它手动添加到公式中,它就会起作用。但是对于您可以看到的代码,公式被打破了。 我也尝试在使用 iconv 后添加 =,但没有任何改变文件仍然损坏。如果有人能帮我解决这个问题,我会很高兴。

来自PHPExcel documentation

将公式写入单元格

Inside the Excel file, formulas are always stored as they would appear in an English version of Microsoft Office Excel, and PHPExcel handles all formulae internally in this format. This means that the following rules hold:

  • 小数点分隔符是“.” (句号)
  • 函数参数分隔符是“,”(逗号)
  • 矩阵行分隔符是';' (分号)
  • 必须使用英文函数名

This is regardless of which language version of Microsoft Office Excel may have been used to create the Excel file.

您正在使用分号 (;) 作为函数参数分隔符

如果您在导出时遇到 IFERROR 的问题,那么您可以使用

$sheet->setCellValue($cell_name, "=IF(ISERROR($val1*$val2),0,$val1*$val2)");

对我有用:)