使用 Python 在 Excel 文件中获取 sheet 的第一个空行

Get first empty row of sheet in Excel file with Python

我需要在 Excel 文件中找到第一个空行,我目前正在使用带有 Python 的 Openpyxl。 我找不到任何方法来满足我的需要,所以我正在尝试自己制作。这是我的代码:

 book = load_workbook("myfile.xlsx")
 ws = book.worksheets[0]
 for row in ws['C{}:C{}'.format(ws.min_row,ws.max_row)]:
    for cell in row:
        if cell.value is None:
            print cell.value
            break

我正在遍历 "C" 列中的所有单元格,如果单元格为空,我就是 "breaking"。问题是它不会中断,它只会继续打印出 "None" 值。

谢谢

这样,如果连续遇到任何空单元格,您的循环就会停止。 如果您希望该行完全为空,您可以使用 all.

book = load_workbook("myfile.xlsx")
ws = book.worksheets[0]
for cell in ws["C"]:
    if cell.value is None:
        print cell.row
        break
else:
    print cell.row + 1

更新评论中的问题:

ws["C"] 将从 C1:CX 中获取切片,其中 X 是任何列中最后填充的单元格。因此,如果 C 列恰好是最长的列并且每个条目都已填充,您将只会获得带有 cell is not None 的单元格,因此您不会跳出循环。如果你没有跳出循环,你将进入 else 块,因为你循环到最后填充的行,第一个空行将是下一个。

openpyxl中有一个内置的工作表属性 "max_row": https://openpyxl.readthedocs.io/en/stable/api/openpyxl.worksheet.worksheet.html#openpyxl.worksheet.worksheet.Worksheet.max_row max_row:定义包含数据的最大行索引的整数