为什么我的 openpyxl 加载只拉工作表中的一个单元格

why does my openpyxl load only pull one cell in worksheet

openpyxl打算读取 XLSX 文档中的行。

但由于某种原因,它只读取单元格 A1 中的值,然后完成。

我错过了什么?

from openpyxl import load_workbook

Dutch = load_workbook(filename='languages/READY-Language Translation-- August (SOS) Dutch_dut_Compared_Results.xlsx', read_only=True)
Dws = Dutch.get_sheet_by_name(name='Ouput')

for row in Dws.iter_rows():
    for cell in row:
        print(cell.value)

只读模式在很大程度上取决于您正在阅读的文件提供的元数据,尤其是 "dimensions"。您可以通过查看 ws.max_rowws.max_col 是什么来检查这一点。如果这些与您的预期不同,则文件中的元数据不正确。您可以强制 openpyxl 使用 ws.calculate_dimensions() 重新计算这些值,但这是不可取的,因为它会强制 openpyxl 读取整个 sheet。更好的方法是简单地重置基础值,以便 openpyxl 知道工作sheet 未调整大小。

如果您以读取模式加载工作簿,并且 openpyxl 未按预期读取 sheet,比如 A1:A1,您可以使用 ws.reset_dimensions() 重置最大行数和最大列数。

Documentaion here

示例:

from openpyxl import load_workbook

wb = load_workbook(filename='languages/READY-Language Translation-- August (SOS) Dutch_dut_Compared_Results.xlsx', read_only=True)
ws = wb['Ouput']
ws.reset_dimensions()

for row in ws.rows:
    for cell in row:
        print(cell.value)