【发布时间】:2020-11-13 20:02:19
【问题描述】:
我目前正在尝试编写一个 python 脚本来从一个 json 文件生成一个 excel 工作簿模板文件。为此,我一直在使用 openpyxl 并在模板中实现 excel 函数以便于访问。我不精通excel,我使用python作为“学习的催化剂”。当我打开生成的文件时,我发现我输入的函数在某些地方有“@”符号。
在 python 中:
from openpyxl import Workbook
wb = Workbook()
sh = wb.active
sh["A2"] = "=IF(ISERR(VLOOKUP(F1,A1:B21,2,FALSE)),”False:Not Contains”,”True: Text Found”)"
(excel 函数来自:https://excelx.com/formula/if-cell-contains-text/#bm4)
在 Excel 中:
=@IF(ISERR(VLOOKUP(F1,A1:B21,2,FALSE)),”False:(Not) Contains”,”True: Text Found”)
我相信这是在 excel 方面,因为当我在 python 中打印单元格时,我会得到与输入相同的字符串。
print(sh["A2"].value)
我想知道是否有人有使用 openpyxl 的经验来阐明如何解决这个问题。
【问题讨论】:
-
将公式放在大括号中是否有帮助,例如:
{=IF(ISERR(VLOOKUP(F1,A1:B21,2,FALSE)),”False:Not Contains”,”True: Text Found”)}。问题很可能是由于您拥有 ExcelO365,如果没有提供一个,数组公式将遭受称为隐式交集的操作。这就是“@”的含义。话虽如此,我对 openpyxl 的了解还不够,无法告诉您这是否可以解决问题。 -
也许this链接告诉你如何通过openpyxl添加数组公式
-
非常感谢,这个链接正是我需要的。问题是我想我不知道用 excel 术语要问什么。