是否有任何方法可以使用openpyxl获取.xlsx工作表中存在的行数和列数?

时间:2016-02-15 11:36:17

标签: python excel openpyxl

是否有任何方法可以使用openpyxl获取.xlsx表中的行数和列数? 在xlrd中,

     sheet.ncols 
     sheet.nrows

会给出列数和行数。 openpyxl中有没有这样的方法?

5 个答案:

答案 0 :(得分:10)

给定变量sheet,可以通过以下两种方式之一确定行数和列数:

版本1.x.x语法

rows = sheet.nrows
columns = sheet.ncols

版本0.x.x语法

rows = sheet.max_row
columns = sheet.max_column

答案 1 :(得分:1)

工作表具有以下方法:'dim_colmax','dim_colmin','dim_rowmax','dim_rowmin'

下面是一个小例子:

import pandas as pd

writer = pd.ExcelWriter("some_excel.xlsx", engine='xlsxwriter')

workbook  = writer.book
worksheet = writer.sheets[RESULTS_SHEET_NAME]

last_row = worksheet.dim_rowmax

答案 2 :(得分:1)

这是逻辑

    number_of_rows = sheet_obj.max_row
    last_row_index_with_data = 0
    
    while True:
        if sheet_obj.cell(number_of_rows, 3).value != None:
            last_row_index_with_data = number_of_rows
            break
        else:
            number_of_rows -= 1

答案 3 :(得分:0)

以 Dani 的解决方案为基础,但没有足够的声誉在其中发表评论。我通过添加一个手动控件来编辑代码以减少搜索时间

Xl= min(Xa, Xc), Xr= max(Xb, Xd)

答案 4 :(得分:0)

使用 Pandas 获取所有工作表行和列计数的解决方案。它使用 df.shape 来获取计数。

import pandas as pd
xl = pd.ExcelFile('file.xlsx')
sheetnames = xl.sheet_names  # get sheetnames
for sheet in sheetnames:
    df = xl.parse(sheet)
    dimensions = df.shape
    print('sheetname', ' --> ', sheet)
    print(f'row count on "{sheet}" is {dimensions[0]}')
    print(f'column count on "{sheet}" is {dimensions[1]}')
    print('-----------------------------')