【问题标题】:PHPExcel - column ranges stripped from formulaPHPExcel - 从公式中删除的列范围
【发布时间】:2014-01-14 00:59:49
【问题描述】:

我正在尝试插入“COUNTIFS”公式,但我知道它不是受支持的函数,但我关闭了编写器的计算设置。它不会引发任何错误。然而,

$active_sheet->setCellValue('C3', "=COUNTIFS('INVENTORY'!$H:$H,1,'INVENTORY'!$C:$C,\"ADMIN\",'INVENTORY'!$N:$N,1)");

被写入文件

COUNTIFS('INVENTORY'!:,1,'INVENTORY'!:,"ADMIN",'INVENTORY'!:,1)

我在另一个页面上的某个地方读到也不支持引用此类列,但我也尝试将它们放入“$C2:$C3000”之类的位置,但没有帮助。

【问题讨论】:

    标签: php phpexcel formulas


    【解决方案1】:

    问题在于您在第二个参数周围使用了双引号。 PHP 正在尝试用实际变量替换 $H、$C 和 $N。

    尝试使用单引号并转义字符串中现有的单引号。

    Here 是有关 PHP 如何解析双引号字符串的文档,可能会有所帮助。

    【讨论】:

    • 哇,这是一个菜鸟的错误。起初我没有清楚地阅读您的问题,即使在自己弄清楚之后,我仍然没有处理您所说的内容。在再次访问该页面后,它击中了我。
    【解决方案2】:

    因此解决方案是删除或转义美元符号 ($)。我删除了它们,它工作正常,然后我逃脱了它们,它也工作了!!

    结果示例行:

    $active_sheet->setCellValue('C3', "=COUNTIFS('INVENTORY'!\$H:\$H,1,'INVENTORY'!\$C:\$C,\"ADMIN\",'INVENTORY'!\$N:\$N,1)");
    

    编辑:哇,菜鸟的错误。归功于 Ian Belcher。

    【讨论】:

      【解决方案3】:

      此时 PHPExcel 不支持列和行范围:您需要提供一个实际范围(例如 'INVENTORY'!$H1:$H500 而不仅仅是 'INVENTORY'!$H:$H

      在工作表中插入或删除新行或新列时,如果没有正确调整现有公式以反映该更改,还会出现几个已知问题。这些问题已在 github 上最新的开发分支代码中得到修复,因此您可能需要再次尝试使用它。

      【讨论】:

      • 我尝试了替代范围(在我的问题中提到过),但没有帮助。我刚刚尝试了最新的开发版本以及 1.8 rc1 并且两者都具有相同的结果:(我什至尝试根据您对错误的评论将 countifs 公式的插入移动到文件的最末尾并且没有也有任何区别。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-03
      • 2017-08-22
      • 2015-05-21
      • 2015-02-01
      相关资源
      最近更新 更多