猿问

Openpyxl 无法读取引用它之前写入的单元格的函数值

我的 openpyxl 包有问题。为了说明问题,我准备了一个简单的例子。


我有一个包含什么,但公式的Excel文件=A1中的B1单元格。我想(1)将值 123 写入 cell A1,(2)保存工作簿,(3)再次打开它并(4)读取 cell 的内容B1。而不是123我得到None. 您可以在下面找到一个简单的代码,(我希望)应该像刚才描述的那样做。谁能看到,我做错了什么?


import openpyxl


# open file and select sheet

wb = openpyxl.load_workbook('example.xlsx')

sheet = wb.get_sheet_by_name('Sheet1')


# write value into cell A1

sheet['A1'].value = 123


# save the file and close it

wb.save('example.xlsx')

wb.close()


# open the file again and select sheet

wb = openpyxl.load_workbook('example.xlsx', data_only=True)

sheet = wb.get_sheet_by_name('Sheet1')


# read value from cell containing referece to cell A1 => why it returns None?

print(sheet['B1'].value)


# close the file

wb.close()

许多谢谢,


麦基


PS:我在 Win7 上使用 python 3.5.5、openpyxl 2.5.6 和 MS Office 2013。


犯罪嫌疑人X
浏览 301回答 3
3回答

繁星点点滴滴

openpyxl 不会也不会计算公式的结果,因此公式 B1=A1 只会在您打开 Excel 工作表或使用其他计算它的程序时计算。我相信还有其他库可以提供帮助,例如 pycel。

MMTTMM

尝试在加载工作簿时将 'data_only' 参数设置为 True。wb = load_workbook("example.xlsx", data_only=True)print(sheet['B1'].value)这将在 B1 单元格计算公式后打印结果。

FFIVE

由于上述评论并没有完全回答我的问题,我将添加一个指向另一个补充线程的链接。希望它能帮助其他面临同样问题的人。我没有意识到必须使用 Excel 应用程序打开和保存更新的 excel 文件...
随时随地看视频慕课网APP

相关分类

Python
我要回答