【问题标题】:PHPexcel formula IFERRORPHPexcel公式IFERROR
【发布时间】:2015-07-20 08:42:15
【问题描述】:

我正在使用 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


    【解决方案1】:

    来自PHPExcel documentation

    将公式写入单元格

    在 Excel 文件中,公式始终按照它们在 Microsoft Office Excel 英文版中的显示方式存储,PHPExcel 在内部以这种格式处理所有公式。这意味着以下规则成立:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      它对我有用:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-24
        相关资源
        最近更新 更多