【发布时间】:2021-09-07 18:57:46
【问题描述】:
我正在使用 openpyxl 创建包含一些自定义 Excel 公式的工作表。其中一个自定义 Excel 公式返回一个数组,但我不提前知道数组的大小(即行数或列数)。
假设这是自定义 Excel 公式:
=GETVALUES(<some input>)
如果我在 Excel 365 中使用此公式,数组将根据需要根据GETVALUES 的返回维度动态调整大小。但是,如果我在 openpyxl 中设置公式(例如 ws["A1"].value = '=_xldudf_GETVALUES(<some input>)')然后在 Excel 365 中打开此工作簿,我会在等号后得到一个 @ 符号。
我看到this 文章建议将formula_attributes:将t 字段设置为array,并将ref 字段设置为单元格范围。由于我不知道返回数组的大小,我想我不会知道为ref 字段设置什么。
有没有办法在 openpyxl 中设置公式(不知道返回数组的大小),以便 Excel 365 动态显示整个数组?如果没有,是否有其他适用于 Python 的 Excel API 能够处理这个问题?
【问题讨论】:
-
您不能依赖 Excel 中的
@符号来告诉您任何事情,除非发生了您无法在 GUI 中完全控制的特殊情况。 Openpyxl 3.1 包括对 Array 和 Table 公式的改进(和更改)支持,但我不知道这与这个特定公式有多相关。
标签: excel excel-formula openpyxl excel-365