读取用 openpyxl 修改的 excel 公式

我有一个很大的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,则不会发生这种情况,为什么不显示公式的结果?


红颜莎娜
浏览 171回答 1
1回答

饮歌长啸

当您在excel文件的B3单元格中写入'=B1 + B2'时,这是一个宏/命令,当在excel中打开文件时,Excel将播放该宏/命令,因此read_excel或openxls无法使用它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python