OpenPyXL遍历行,直到找到空行

问题描述 投票:0回答:1

有一个a.xlsx文件,为92427行(不包括标题)。我打开a.xlsx,手动删除许多行(保留前27行)并另存为a_sample.xlsx作为样本输入。

我使用以下代码从a_sample.xlsx中读取数据。

from openpyxl import load_workbook

wb = load_workbook(file_workbook, read_only=True)
ws = wb.sheetnames[0]  # wb.get_sheet_by_name(wb.get_sheet_names()[0])

for idx, row in enumerate(ws.iter_rows(row_offset=1)): # row_offset=1, skip the header
    print(idx)

输出的最后一行是92426,而不是26。可能是什么原因?

我使OpenPyXL遍历以空行结尾的行:

for idx, row in enumerate(ws.iter_rows(row_offset=1)): 
    if row[0].value is None:
        break
python openpyxl
1个回答
0
投票

某处可能有非空单元格。请查看ws.max_rowws.max_column,然后在文件中手动检查单元格[ws.max_row, ws.max_column]

如上所述,没有关键字row_offset,但是您可以使用类似的内容

for idx, row in enumerate(ws.iter_rows(min_row=1, max_col=3, max_row=20)):

其中max_row <= ws.max_column

© www.soinside.com 2019 - 2024. All rights reserved.