为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

犯罪嫌疑人X 2021-06-11 15:21:14
我的 openpyxl 包有问题。为了说明问题,我准备了一个简单的例子。我有一个包含什么,但公式的Excel文件=A1中的B1单元格。我想(1)将值 123 写入 cell A1,(2)保存工作簿,(3)再次打开它并(4)读取 cell 的内容B1。而不是123我得到None. 您可以在下面找到一个简单的代码,(我希望)应该像刚才描述的那样做。谁能看到,我做错了什么?import openpyxl# open file and select sheetwb = openpyxl.load_workbook('example.xlsx')sheet = wb.get_sheet_by_name('Sheet1')# write value into cell A1sheet['A1'].value = 123# save the file and close itwb.save('example.xlsx')wb.close()# open the file again and select sheetwb = 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 filewb.close()许多谢谢,麦基PS:我在 Win7 上使用 python 3.5.5、openpyxl 2.5.6 和 MS Office 2013。
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

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


查看完整回答
反对 回复 2021-06-16
?
MMTTMM

TA贡献1869条经验 获得超4个赞

尝试在加载工作簿时将 'data_only' 参数设置为 True。


wb = load_workbook("example.xlsx", data_only=True)

print(sheet['B1'].value)

这将在 B1 单元格计算公式后打印结果。


查看完整回答
反对 回复 2021-06-16
?
FFIVE

TA贡献1797条经验 获得超6个赞

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



查看完整回答
反对 回复 2021-06-16
  • 3 回答
  • 0 关注
  • 300 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号