如何使用 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)
我正在使用 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)