如何使用 PhpSpreadsheet 评估 CSE 公式?
How to evaluate a CSE formula using PhpSpreadsheet?
我正在使用 PhpSpreadsheet (1.15.0) 生成带有公式的 XLSX 文档。
此公式之一是 Ctrl+Shift+Enter (CSE) 公式。
生成文档并打开它时,会计算简单的公式(如“=SUM(A1:A2)”)。用户无需处理公式,只需填写单元格即可。
但是,我不知道如何让我的 CSE 公式在打开时进行评估。现在,该公式是有效的,并且可以正确翻译本地化函数的名称,但用户仍然需要手动评估它,方法是转到单元格,然后在公式栏中,最后按 Ctrl+Shift+Enter。
有没有办法通过 PhpSpreadsheet 告诉 Excel 在打开时计算这个公式?
例如,这是我的 CSE 公式:
=SUM(--(FREQUENCY(IF(E14:E25="CREDIT_CARD",MATCH(F14:F25,F14:F25,0)),ROW(F14:F25)-ROW(F14)+1)>0))
PhpSpreadsheet 现在似乎不能这样做,我不知道为什么。
这一定有一些复杂的地方。
但我通过处理数组公式找到了符合我需求的拉取请求:https://github.com/PHPOffice/PhpSpreadsheet/pull/1591
我正在使用 PhpSpreadsheet (1.15.0) 生成带有公式的 XLSX 文档。 此公式之一是 Ctrl+Shift+Enter (CSE) 公式。
生成文档并打开它时,会计算简单的公式(如“=SUM(A1:A2)”)。用户无需处理公式,只需填写单元格即可。
但是,我不知道如何让我的 CSE 公式在打开时进行评估。现在,该公式是有效的,并且可以正确翻译本地化函数的名称,但用户仍然需要手动评估它,方法是转到单元格,然后在公式栏中,最后按 Ctrl+Shift+Enter。
有没有办法通过 PhpSpreadsheet 告诉 Excel 在打开时计算这个公式?
例如,这是我的 CSE 公式:
=SUM(--(FREQUENCY(IF(E14:E25="CREDIT_CARD",MATCH(F14:F25,F14:F25,0)),ROW(F14:F25)-ROW(F14)+1)>0))
PhpSpreadsheet 现在似乎不能这样做,我不知道为什么。 这一定有一些复杂的地方。
但我通过处理数组公式找到了符合我需求的拉取请求:https://github.com/PHPOffice/PhpSpreadsheet/pull/1591