gpt4 book ai didi

python - 使用 xlrd 时读取包含公式的单元格值返回 0.0

转载 作者:太空狗 更新时间:2023-10-29 17:46:44 24 4
gpt4 key购买 nike

我尝试读取一个单元格值,例如 Excel 工作表中的 E5 和 E5 包含一个公式“=(A29 - A2)”。我使用以下代码,它返回 0.00 而不是实际值 1.440408.有办法解决这个问题吗?我想打印正确的值。请帮我解决一下这个。谢谢。

book = xlrd.open_workbook('Test.xlsx')
first_sheet = book.sheet_by_index(0)
particular_cell_value = (first_sheet.cell_value(4,4))
print(particular_cell_value)

最佳答案

Excel 文件独立存储公式和值。 如果文件直接由 Excel 保存,则 Excel 会写入两者。而其他软件生成的文件,比如xlwt、OpenPyXL、XlsxWriter,只写公式。这是因为无法保证第三方包能够以与 Excel 完全相同的方式评估 Excel 的内置函数。因此,建议(实际上来自微软本身)是第三方包编写公式,将值设置为零,并设置全局“自动重新计算”标志(因此如果文件在 Excel 中打开,Excel 将继续计算所有公式结果自动生成)。

XlsxWriter 在其 write_formula() 的文档中详细说明了这一点方法:

XlsxWriter doesn’t calculate the value of a formula and instead stores the value 0 as the formula result. It then sets a global flag in the XLSX file to say that all formulas and functions should be recalculated when the file is opened. This is the method recommended in the Excel documentation and in general it works fine with spreadsheet applications. However, applications that don’t have a facility to calculate formulas, such as Excel Viewer, or some mobile applications will only display the 0 results.

然后它继续告诉您如果您真的想在其中放置一个值,如何将值和公式一起编写。该值可以是您选择的任何值,不一定与 Excel 计算的值相同。在撰写本文时,xlwt 和 OpenPyXL 都不支持此功能。

所以,说了这么多,当涉及到读取 Excel 文件时,xlrd 自然会选择 0,除非结果也同时写入。您会注意到 xlrd 总是在文件最后一次被 Excel 保存时得到正确的结果。它还会获取结果(可能正确也可能不正确)如果您使用 XlsxWriter 编写了一个

关于python - 使用 xlrd 时读取包含公式的单元格值返回 0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20736814/

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