如何使用python的openpyxl模块访问单元格的实际值

时间:2014-03-24 15:11:47

标签: python cell openpyxl

我遇到了这个问题,因为cell.value函数返回用于单元格的公式,我需要在操作后提取Excel提供的结果。

谢谢。


好的,我想我找到了解决办法;显然要访问cell.internal值,你必须先在工作表中使用iter_rows(),这是一个" RawCell"的列表。

for row in ws.iter_rows():

    for cell in row:

        print cell.internal_value

4 个答案:

答案 0 :(得分:66)

就像Charlie Clark已建议您在加载工作簿时可以在data_only设置True

from openpyxl import load_workbook

wb = load_workbook("file.xlsx", data_only=True)
sh = wb["Sheet_name"]
print(sh["x10"].value)
祝你好运:)

答案 1 :(得分:25)

从代码中看起来您正在使用优化的阅读器:read_only=True。打开工作簿时,可以使用data_only=True标志在提取公式及其结果之间切换。

internal_value是一个私有属性,过去仅用于指代Excel使用的(无类型)值,即。 1900年的纪元数字用于日期而不是Python形式。自从首次提出这个问题以来,它已从图书馆中删除。

答案 2 :(得分:4)

尝试改为使用cell.internal_value

答案 3 :(得分:4)

您可以尝试以下代码。请在下面的代码中提供excel文件路径以及您需要的行号和列号的位置。

HttpSession session = request.getSession(false);