使用 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:定义包含数据的最大行索引的整数
我需要在 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:定义包含数据的最大行索引的整数