使用 OpenPyXL 使用 INDEX 函数编写 .xlsx 文件时,Excel 公式中存在“@”符号问题

问题描述 投票:0回答:0

我目前正在开发一个 Python 脚本,该脚本利用 OpenPyXL 将公式写入 .xlsx 文件。我使用的具体公式涉及 TEXTJOIN 和 INDEX 函数。但是,在 Excel 中打开保存的 .xlsx 文件时,我注意到公式中的 INDEX 函数之前会自动插入一个“@”符号。这个意外的“@”符号破坏了公式,并且只有当我手动删除“@”符号时,公式才按预期工作。

这是我用来将公式写入 .xlsx 文件的代码片段:

formula = '=_xlfn.TEXTJOIN(" + ", TRUE, IF(INDEX(Products!$B:$G, MATCH($A2, Products!$A:$A, 0), 0)=1, Products!$B$1:$G$1, ""))'

ws.cell(row=1, column=2, value=formula)

当我在 Excel 中打开保存的 .xlsx 文件时,公式如下所示:

=TEXTJOIN(" + ", TRUE, IF(@INDEX(Products!$B:$G, 
MATCH($A2, Products!$A:$A, 0), 0)=1, Products!$B$1:$G$1, ""))

如您所见,“@”符号导致公式中的 INDEX 函数出现问题。

我已经在 TEXTJOIN 函数中添加了“_xlfn”前缀以确保其正常工作,但我无法弄清楚为什么在 INDEX 函数之前插入“@”符号。有人可以解释为什么会发生这种情况,并提出一个解决方案来防止将“@”符号添加到公式中吗?

任何见解或帮助将不胜感激!

python excel automation openpyxl
© www.soinside.com 2019 - 2024. All rights reserved.