如何使用 openpyxl 普通工作簿查找列中的最后一行?

How to find the last row in a column using openpyxl normal workbook?

我正在使用 openpyxl 对所有包含 "Default" 的行进行数据验证。但为此,我需要知道有多少行。

我知道如果我使用 Iterable 工作簿模式有一种方法可以做到这一点,但我还向工作簿添加了一个新的 sheet 并且在 Iterable 模式下这是不可能的。

ws.max_row 将为您提供工作表中的行数。

从 openpyxl 2.4 版本开始,您还可以访问单独的行和列并使用它们的长度来回答问题。

len(ws['A'])

不过值得注意的是,对于单个列的数据验证 Excel 使用 1:1048576.

求行长和列长

列:

column=sheet['A']
output tuple-->(A1,A2,A3........An)

len(column)
output length--> 18                    

行长:

for i in sheet.iter_rows(max_row=0):

    print(len(i))

    break

这将为您提供放置特征名称的 header 行的长度。 如果您想获得所有行的长度,请添加 max_row=len(column) 并删除 break.

这很适合我。它给出每列中的非空行数,假设它们之间没有空行。

from openpyxl import load_workbook as lw
from openpyxl.utils import get_column_letter

wb = lw(your_xlsx_file)
ws = wb[sheet_name]

for col in range(1, ws.max_column + 1):
    col_letter = get_column_letter(col)
    max_col_row = len([cell for cell in ws[col_letter] if cell.value])
    print("Column: {}, Row numbers: {}".format(col_letter, max_col_row)