openpyxl.load_workbook(file,data_only = True do not't work?

为什么x =“None”而不是“500”? 我已经尝试了一切,我知道和search1小时的答案…谢谢你的帮助!

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? 

从文档

openpyxl从不评估公式

文档说:

data_only控制具有公式的单元格是具有公式(默认)还是上次Excel读取工作表时存储的值。

因此,如果您还没有使用过Excel打开该.xlsx文件(writeFormula.xlsx)一次,Excel将不会有任何数据存储。 因此,您的程序将返回一个NoneType值。 如果你想让你的程序返回'500',你应该手动打开'writeFormula.xlsx'。 然后,注释程序的文件创build部分。 你会得到'500'。

我已经尝试过了。 它工作。 告诉我,如果你有不同的看法。 谢谢。