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



我有这个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)

如果您在读取模式下加载工作簿,并且openpyxl没有按照预期读取工作表,例如A1:A1,您可以使用ws.reset_dimensions()重置最大行和col。

Documentaion这里

的例子:

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)

只读模式在很大程度上取决于您正在读取的文件提供的元数据,特别是"维度"。您可以通过查看ws.max_rowws.max_col来检查这一点。如果这些与您期望的不同,那么文件中的元数据是不正确的。您可以使用ws.calculate_dimensions()强制openpyxl重新计算这些值,但这是不可取的,因为它强制openpyxl读取整个表。更好的方法是简单地重置底层值,以便openpyxl知道工作表没有大小。

相关内容

最新更新