Python 阅读用openpyxl修改的excel公式

Python 阅读用openpyxl修改的excel公式,python,excel,pandas,openpyxl,Python,Excel,Pandas,Openpyxl,我有一个很大的excel,里面有很多公式和一些输入数据。我试图用openpyxl修改这个输入数据,然后读取结果。由于某些原因,openpyxl或pandas无法正确读取带有公式的单元格的值,但如果在excel中打开它,我可以看到计算值。如果我用excel创建一个类似的文件,那么可以毫无问题地读取公式的结果。我做错什么了吗?我在这里用一个例子再现我的问题: from openpyxl import Workbook,load_workbook import pandas as pd wb=Wor

我有一个很大的excel,里面有很多公式和一些输入数据。我试图用openpyxl修改这个输入数据,然后读取结果。由于某些原因,openpyxl或pandas无法正确读取带有公式的单元格的值,但如果在excel中打开它,我可以看到计算值。如果我用excel创建一个类似的文件,那么可以毫无问题地读取公式的结果。我做错什么了吗?我在这里用一个例子再现我的问题:

from openpyxl import Workbook,load_workbook
import pandas as pd

wb=Workbook()
ws1=wb['Sheet']
ws1['A1']='a'
ws1['A2']='b'
ws1['A3']='c'

ws1['B1']=1
ws1['B2']=2
ws1['B3']='=B1+B2'
wb.save('to_erase.xlsx')

wb2 = load_workbook(filename='to_erase.xlsx')
wb['Sheet']['B3'].value
#this displays the formula, ok

wb3 = load_workbook(filename='to_erase.xlsx',data_only=True)
wb3['Sheet']['B3'].value
这没有显示任何东西,这很奇怪,同样是我用的熊猫

pd.read_excel('to_erase.xlsx',header=None)

单元B3是一个NaN。如果我手动创建excel,则不会发生这种情况,为什么公式的结果不会显示?

当您在excel文件的单元格B3中写入“=B1+B2”时,这是一个宏/命令,当文件在excel中打开时,excel将播放该宏/命令,因此read_excel或openxls无法播放该宏/命令。

因此无法执行工作流?,即使使用其他库?不,对不起,或者您有一个模拟excel某些功能的工具(不是免费的…),或者您有一个可以与excel打开的excel文件通信的工具。(com或dom工具)。Excel可以执行python程序,但这不是您想要的。请不要忘记验证答案