我需要在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”列中的所有单元格中进行迭代,如果该单元格为空,我将“中断”。问题是它不会损坏,只会打印出“无”值。
谢谢
答案 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
块,由于您一直循环到最后填充的行,所以第一个空行将是下一个。