使用Python获取Excel文件中工作表的第一行空白

时间:2018-07-18 07:07:24

标签: python excel algorithm openpyxl worksheet

我需要在Excel文件中找到第一个空行,我目前正在将Openpyxl与Python配合使用。 我找不到能满足我需要的任何方法,因此我正在尝试制作自己的方法。这是我的代码:

 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”列中的所有单元格中进行迭代,如果该单元格为空,我将“中断”。问题是它不会损坏,只会打印出“无”值。

谢谢

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

这样,如果循环连续遇到空单元格,循环将停止。 如果您希望行完全为空,则可以使用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块,由于您一直循环到最后填充的行,所以第一个空行将是下一个。