📅  最后修改于: 2023-12-03 15:03:23.042000             🧑  作者: Mango
如果你需要在 Python 中处理 Excel 文件,Openpyxl 是一个不错的选择。本文将介绍如何使用 Openpyxl 获取 Excel 表格中最后一个非空行。
首先,需要在终端中使用 pip 安装 Openpyxl 模块:
pip install openpyxl
在代码中导入 openpyxl 模块,使用 load_workbook
方法读取 Excel 文件。该方法将返回一个 Workbook 对象,表示整个 Excel 文件:
from openpyxl import load_workbook
workbook = load_workbook('example.xlsx')
使用 workbook.active
获取默认的工作表。如果需要操作其他工作表,则可以使用工作表名称或整数索引获取指定的工作表:
# 获取名称为 Sheet1 的工作表
worksheet = workbook['Sheet1']
# 获取第一个工作表
worksheet = workbook.worksheets[0]
使用 worksheet.max_row
获取工作表的最大行数。但这并不是最后一个非空行,因为最后几行可能为空。可以使用 ws.iter_rows
方法迭代行,检查每行中是否包含至少一个非空单元格:
from openpyxl.utils import range_boundaries
from openpyxl.cell.cell import Cell
def get_last_row(worksheet):
for row in reversed(list(worksheet.iter_rows(min_row=1, max_row=worksheet.max_row))):
for cell in row:
if isinstance(cell, Cell) and cell.value is not None:
return range_boundaries(row)[1]
此函数将从最后一行向上迭代,直到找到包含非空单元格的第一行。
from openpyxl import load_workbook
from openpyxl.utils import range_boundaries
from openpyxl.cell.cell import Cell
def get_last_row(worksheet):
for row in reversed(list(worksheet.iter_rows(min_row=1, max_row=worksheet.max_row))):
for cell in row:
if isinstance(cell, Cell) and cell.value is not None:
return range_boundaries(row)[1]
workbook = load_workbook('example.xlsx')
worksheet = workbook.active
last_row = get_last_row(worksheet)
print(f'The last non-empty row is {last_row}.')
这应该返回 Excel 表格中最后一个非空行的行号。
在 Python 中使用 Openpyxl 获取 Excel 表格中最后一个非空行可以使用 ws.iter_rows
方法迭代行和单元格,检查是否包含非空单元格。在找到包含非空单元格的第一行后,可以使用 Openpyxl 的 range_boundaries
函数获取该行的行号。
完整代码: https://gist.github.com/luojianzhang/ef1a65a75ae0598f6515a5c5eaf88cf2