我正在使用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之后添加=
,但没有任何更改文件仍然被破坏。如果有人可以帮我解决这个问题,我会很高兴。
答案 0 :(得分:1)
将公式写入单元格
在Excel文件中,公式始终存储在英文版Microsoft Office Excel中,并且PHPExcel以此格式在内部处理所有公式。这意味着以下规则成立:
这与使用哪种语言版本的Microsoft Office Excel创建Excel文件无关。
您使用分号(;
)作为函数参数分隔符
答案 1 :(得分:0)
如果导出时在IFERROR的工作中遇到问题,则可以使用
$sheet->setCellValue($cell_name, "=IF(ISERROR($val1*$val2),0,$val1*$val2)");
它对我有用:)