openpyxl.load_工作簿(file,data\only=True无效?

2024-10-01 09:37:42 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么x=“无”而不是“500”? 我尝试了我所知道的一切,并寻找了一个小时的答案。。。 谢谢你的帮助!在

import openpyxl

wb = openpyxl.Workbook()
sheet = wb.active
sheet["A1"] = 200
sheet["A2"] = 300
sheet["A3"] = "=SUM(A1+A2)"

wb.save("writeFormula.xlsx")

wbFormulas = openpyxl.load_workbook("writeFormula.xlsx")
sheet = wbFormulas.active
print(sheet["A3"].value)

wbDataOnly = openpyxl.load_workbook("writeFormula.xlsx", data_only=True)
sheet = wbDataOnly.active
x = (sheet["A3"].value)
print(x) # None? Should print 500?

Tags: a2valuea1loadxlsxa3sheetactive
3条回答

文件上说:

data_only controls whether cells with formulae have either the formula (default) or the value stored the last time Excel read the sheet.

所以,如果您没有使用Excel打开.xlsx文件(writeFormula.xlsx)有一次,Excel没有任何数据可以存储。因此,程序将返回一个NoneType值。 如果你想要你的程序返回'500',你应该手动打开'writeFormula.xlsx'. 然后,对程序的文件创建部分进行注释。你会得到500英镑。在

我已经试过了。而且很管用。告诉我,如果你有不同的意见。谢谢。在

我也有同样的问题。解决方案是手动打开xlsx文件并将其关闭,然后单击“保存”。在这个操作之后,您可以尝试wbDataonly编程部分并获得数据500

documentation

openpyxl never evaluates formula

相关问题 更多 >