【问题标题】:openpyxl data_only gives only a none answer when storing a variable存储变量时,openpyxl data_only 仅给出无答案
【发布时间】:2019-06-05 02:55:30
【问题描述】:

所以基本上我要做的是从 excel 工作簿中读取一些输入变量并将它们写入一些输出模型单元格。然后我保存工作簿以尝试更新输出模型中的数据。由于我的输出模型单元格是公式,我尝试将工作簿重新加载为只读 data_only,然后抓取这些单元格并将它们存储在单独的工作表上。然后我再次保存工作簿。

问题是我尝试在 data_only 加载的工作簿中获取的值(LS、Sales、TPLH)读出为 none 而不是我需要的值。我最终想把它变成一个循环来迭代一堆输入变量,但我想从一组开始尝试它。

如果有人知道更好的方法或我做错了什么,请告诉我!我感谢任何和所有的反馈。 这是我的代码:

from openpyxl import load_workbook
wb2 = load_workbook("Z:\\PythonFiles\\testexcel.xlsx")
sh2 = wb2.get_sheet_by_name("Output Model")
sh= wb2.get_sheet_by_name('OptimizationData')

ForeCast = sh.cell(row=3, column=2).value
sh2.cell(row=3, column=6).value=ForeCast
wb2.save("Z:\\PythonFiles\\testexcel.xlsx")

wb = load_workbook("Z:\\PythonFiles\\testexcel.xlsx", data_only =True)
sh3 = wb.get_sheet_by_name("Output Model")
sh4 = wb.get_sheet_by_name("OptimizationData")

LS=sh3.cell(row=11, column=3).value
Sales = sh3.cell(row=12, column=3).value
TPLH = sh3.cell(row=13, column=3).value

sh4.cell(row=3, column=7).value=LS
sh4.cell(row=3, column=8).value=Sales
sh4.cell(row=3, column=9).value=TPLH

wb.save("Z:\\PythonFiles\\testexcel.xlsx")

【问题讨论】:

标签: openpyxl


【解决方案1】:

Openpyxl 永远不会计算公式的结果。它完全依赖于另一个应用程序已经完成了。这也意味着这些值在通过 openpyxl 传递时会从工作簿中删除。只要您保存wb2,就会发生这种情况。如果您想访问这些值,则需要先以纯数据模式打开wb

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多