hum*_*man 15 python excel openpyxl
我正在使用openpyxl将数据验证放到其中包含"Default"的所有行中.但要做到这一点,我需要知道有多少行.
我知道如果我使用Iterable工作簿模式,有一种方法可以做到这一点,但我还在工作簿和可迭代模式中添加了一个新工作表,这是不可能的.
Cha*_*ark 35
ws.max_row 将为您提供工作表中的行数.
从版本openpyxl 2.4开始,您还可以访问各个行和列,并使用它们的长度来回答问题.
len(ws['A'])
虽然值得注意的是Excel用于单列的数据验证1:1048576.
这对我来说很有效。它给出每列中非空行的数量,假设中间没有空行。
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 is not None])
    print("Column: {}, Row numbers: {}".format(col_letter, max_col_row)
Run Code Online (Sandbox Code Playgroud)
根据 @CharlieClark 建议更新了代码