阅读用openpyxl修改的Excel公式

时间:2019-03-08 13:15:49

标签: python excel pandas openpyxl

我在很多公式和一些输入数据方面都表现出色。我正在尝试使用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,则不会发生这种情况,为什么不显示公式的结果?

1 个答案:

答案 0 :(得分:0)

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