gpt4 book ai didi

python - 如何使用 openpyxl 更新方程链接?

转载 作者:太空宇宙 更新时间:2023-11-03 15:16:30 26 4
gpt4 key购买 nike

我正在尝试使用 openpyxl 从引用内部单元格的方程中读取数据(引用既指同一工作表上的单元格,也指其他工作表上的单元格),但是当我尝试读取方程中的值时,我得到值为“无”。如果我先打开工作簿,我会收到一个有关更新链接的消息框。如果我点击取消然后保存工作簿,我可以用方程读取值。我不想手动打开每个工作簿并保存它。有没有办法在 openpyxl 加载工作簿时正确评估内部引用的方程?

这是我加载工作簿的方法:

     import openpyxl
wbPath = [workbookpath]
workbook = openpyxl.load_workbook(wbPath, data_only=True)

*编辑:只是想添加我用来获取要使用 openpyxl 和 xlwings 包更新的方程的代码:

import xlwings as xw
import openpyxl

#Open and save workbook with openpyxl
wbPath = [WorkbookPath]

wb = openpyxl.load_workbook(wbPath)
wb.save(wbPath)

#Use xlwings to open and compute equations
wb = xw.Book(wbPath)
app = xw.apps.active
wb.save(wbPath)
app.quit()

这将导致所有方程重新生成,并且仍然允许您使用 openpyxl 进行工作簿的其余操作。

最佳答案

不幸的是,没有办法用 openpyxl 来做到这一点。 openpyxl 所做的只是从 Excel 文件中读取原始数据,并且在打开/保存文件时,Excel 会保存计算的“缓存”版本。 openpyxl 可以利用这一点并返回上次计算时的数据,但它保持“哑”状态,不会重新计算或重新评估公式等。

如果你想评估公式,你必须找到或编写一个基本的解析器,或者你可能想看看类似 xlwings 的东西。它可以在运行时与 Excel 交互。

关于python - 如何使用 openpyxl 更新方程链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43850711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com