阅读用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

这不显示任何东西,这很奇怪,我使用pandas

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

细胞B3是NAN。如果我手动创建Excel,这不会发生,为什么未显示公式的结果?

当您在excel文件的单元格B3中编写'= b1 b2'时,这是一个宏/命令,当将在excel中打开文件时,Excel将播放,所以read_excel或OpenXL不能玩它。

最新更新