PHPexcel公式

PHPexcel公式,php,formula,phpexcel,Php,Formula,Phpexcel,我使用的是PHP excel 1.8.0。我到处都搜索过,但我不明白为什么会发生以下错误,我的excel文件也被破坏了 Uncaught exception 'PHPExcel_Calculation_Exception' with message 'Worksheet!K2 -> Formula Error: An unexpected error occured' 我必须使用ISO8859-2编码 $formula = iconv('ISO-8859-2', 'UTF-8//IGNO

我使用的是PHP excel 1.8.0。我到处都搜索过,但我不明白为什么会发生以下错误,我的excel文件也被破坏了

Uncaught exception 'PHPExcel_Calculation_Exception' with message 'Worksheet!K2 -> Formula Error: An unexpected error occured'
我必须使用ISO8859-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之后,我还尝试添加了
=
,但没有任何变化,文件仍然被破坏。如果有人能帮我解决这个问题,我将非常高兴。

来自:

将公式写入单元格中

在Excel文件中,公式始终以英文版Microsoft Office Excel中的形式存储,PHPExcel在内部以这种格式处理所有公式。这意味着以下规则适用:

  • 小数点分隔符为“.”(句点)
  • 函数参数分隔符为“,”(逗号)
  • 矩阵行分隔符为“;”(分号)
  • 必须使用英文函数名
这与创建Excel文件可能使用的Microsoft Office Excel语言版本无关


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

如果在导出时遇到IFERROR工作问题,则可以使用

$sheet->setCellValue($cell_name,“=IF(iError($val1*$val2),0,$val1*$val2)”

它对我有用:)