我正在使用 OpenPyxl 创建和修改 Excel 工作表。
我在 Excel 中有以下公式:
=(SUM(IF(LEFT(Balances!$B$2:$B$100,LEN($B4))=$B4,Balances!$D$2:$D$100)))
这个公式是一个“数组公式”,但是为了手写它,我必须用 CTRL+SHIFT+ENTER 完成(因为它是一个数组公式)。
这个变换然后公式如下:
{=(SUM(IF(LEFT(Balances!$B$2:$B$100,LEN($B4))=$B4,Balances!$D$2:$D$100)))}
我希望能够使用以下代码通过 OpenPyxl 编写此公式:
sheet.cell(row=j, column=i).value = '{=(SUM(IF(LEFT(Balances!$B$2:$B$100,LEN($B4))=$B4,Balances!$D$2:$D$100)))}'
但是,它不起作用。 OpenPyxl 无法管理它。它给了我写但不工作的公式。
我可以用 XLSX Writer
https://xlsxwriter.readthedocs.io/example_array_formula.html
但是 XLSX 编写器不适用于已创建的文件。
我看不到要走的路。
最佳答案
使用 worksheet.formula_attributes
设置数组公式。将公式放在所需的单元格中,本例中为 A1。然后设置formula_attributes
到要应用公式的单元格区域。
ws["A1"] = "=B4:B8"
ws.formula_attributes['A1'] = {'t': 'array', 'ref': "A1:A5"}
关于python - 如何使用 openpyxl 在 Excel 工作表中插入数组公式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57298554/