使用openpyxl在Python中运行excel加载项中的函数

使用openpyxl在Python中运行excel加载项中的函数,python,excel,python-3.x,openpyxl,Python,Excel,Python 3.x,Openpyxl,我想知道是否可以使用openpyxl调用从外接程序安装的Excel函数 例如,只要我使用本机Excel函数,我就没有问题 # Load libraries from openpyxl import load_workbook import pandas as pd # Creates Excel workbook wb = Workbook() wb.save("Example.xlsx") # Excel writer definition book = load_workbook("Ex

我想知道是否可以使用openpyxl调用从外接程序安装的Excel函数

例如,只要我使用本机Excel函数,我就没有问题

# Load libraries
from openpyxl import load_workbook
import pandas as pd

# Creates Excel workbook
wb = Workbook()
wb.save("Example.xlsx")

# Excel writer definition
book = load_workbook("Example.xlsx")
writer = pd.ExcelWriter("Example.xlsx", engine = "openpyxl")
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
ws = book.active

# Cell value definition
ws["A1"] = 1
ws["A2"] = 2
ws["A3"] = 3

# Native Excel function applied "SUM()"
ws["D4"] = "=SUM(A1:A3)"

# Saving workbook
writer.save()
但是,当我尝试使用从外接程序安装的函数时,我不能这样做

假设我已安装下一个加载项:

我想使用“插值”函数

# Load libraries
from openpyxl import Workbook
from openpyxl import load_workbook
import pandas as pd

# Creates Excel workbook
wb = Workbook()
wb.save("Example.xlsx")

# Excel writer definition
book = load_workbook("Example.xlsx")
writer = pd.ExcelWriter("Example.xlsx", engine = "openpyxl")
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
ws = book.active

# Cell value definition
ws["A1"] = 1
ws["A2"] = 2
ws["A3"] = 3
ws["A4"] = 4
ws["A5"] = 5 

ws["B1"] = -0.1
ws["B2"] = 0.32
ws["B3"] = 0.62
ws["B4"] = -0.49
ws["B5"] = 0.72

ws["A7"] = 1.5

# Add-in function applied "INTERPOLATE()"
ws["B7"] = "=Interpolate($A$1:$A$5;$B$1:$B$5;A7;1;0)"

# Saving workbook
writer.save()
代码可以完美地工作。但是,一旦打开Example.xlsx,我就会收到下一条消息:

这就是结果:


如您所见,单元格“B7”中没有值。

这是否回答了您的问题?或者,非常感谢您的信息@stovfl!它工作得很好!我怀疑一些外接程序公式可能也需要自己的XML名称空间,但这里的情况似乎不是这样。谢谢@charlechlark的评论!