使用openpyxl
,我可以读取一张纸上的2个数字,还可以通过向工作表中加载data_only=True
来读取它们的总和。
但是,当我使用openpyxl
更改2个数字,然后尝试使用data_only=True
阅读答案时,它不返回任何输出。我该怎么做?
答案 0 :(得分:3)
Pyopenxl不评估公式。在管理Excel文件方面很棒,位无法计算(评估)单元格。
PyCel,xlcalculator,Formulas和Schedula是Python库,可以评估Excel文件中的单元格。这些通常独立于操作系统,不需要安装Excel。
xlwings,PyXll,DataNitro和FlyingKoala都促进了Excel-Python的通信,因此您可以在Python中“使用” /与Excel一起使用。但是,使用这些解决方案时,您需要安装Excel。
使用xlcalculator评估Excel文件中的单元格的示例:
from xlcalculator import ModelCompiler
from xlcalculator import Model
from xlcalculator import Evaluator
filename = r'use_case_01.xlsm'
compiler = ModelCompiler()
new_model = compiler.read_and_parse_archive(filename)
evaluator = Evaluator(new_model)
val1 = evaluator.evaluate('First!A2')
print("value 'evaluated' for First!A2:", val1)
答案 1 :(得分:0)
您可以在openpyxl中具有 值或公式。正是为了避免混淆,这种编辑可能导致库的工作方式如此。要评估更改后的公式,您需要将文件加载到MS Excel或LibreOffice等应用中,该应用可以评估公式并存储结果。
答案 2 :(得分:0)
openpyxl data_only标志仅在加载文件时获得公式评估值。 更重要的是,仅当某些工具(例如MS Excel)已经评估了公式并存储了缓存的值时,data_only才能获取该值,否则openpyxl将获取“无”。 I found it from this answer