PHPexcel公式IFERROR

问题描述 投票:-1回答:2

我正在使用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之后添加=,但没有任何更改文件仍然被破坏。如果有人可以帮我解决这个问题,我会很高兴的。

php formula phpexcel
2个回答
1
投票

来自PHPExcel documentation

将公式写入单元格

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

  • 小数分隔符是'。' (期)
  • 函数参数分隔符是','(逗号)
  • 矩阵行分隔符是';' (分号)
  • 必须使用英文函数名称

这与用于创建Excel文件的Microsoft Office Excel的哪个语言版本无关。

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


0
投票

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

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

这个对我有用 :)

© www.soinside.com 2019 - 2024. All rights reserved.