Skip to content Skip to sidebar Skip to footer

Is There Any Method To Get The Number Of Rows And Columns Present In .xlsx Sheet Using Openpyxl?

Is there any method to get the number of rows and columns present in .xlsx sheet using openpyxl ? In xlrd, sheet.ncols sheet.nrows would give the column and row count.

Solution 1:

Given a variable sheet, determining the number of rows and columns can be done in one of the following ways:

Version ~= 3.0.5 Syntax

rows = sheet.max_rows
columns = sheet.max_column

Version 1.x.x Syntax

rows = sheet.nrows
columns = sheet.ncols

Version 0.x.x Syntax

rows = sheet.max_row
columns = sheet.max_column

Solution 2:

Worksheet has these methods: 'dim_colmax', 'dim_colmin', 'dim_rowmax', 'dim_rowmin'

Below is a small example:

import pandas as pdwriter= pd.ExcelWriter("some_excel.xlsx", engine='xlsxwriter')

workbook  = writer.bookworksheet= writer.sheets[RESULTS_SHEET_NAME]

last_row = worksheet.dim_rowmax

Solution 3:

this is the logic

    number_of_rows = sheet_obj.max_row
    last_row_index_with_data = 0whileTrue:
        if sheet_obj.cell(number_of_rows, 3).value != None:
            last_row_index_with_data = number_of_rows
            breakelse:
            number_of_rows -= 1

Solution 4:

Building upon Dani's solution and not having enough reputation to comment in there. I edited the code by adding a manual piece of control to reduce the time consumed on searching

## iteration to find the last row with values in itnrows=ws.max_rowifnrows>1000:nrows=1000lastrow=0while True:ifws.cell(nrows,3).value!=None:lastrow=nrowsbreakelse:nrows-=1

Solution 5:

A solution using Pandas to get all sheets row and column counts. It uses df.shape to get the counts.

import pandas as pd
xl = pd.ExcelFile('file.xlsx')
sheetnames = xl.sheet_names  # get sheetnamesfor 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('-----------------------------')

Post a Comment for "Is There Any Method To Get The Number Of Rows And Columns Present In .xlsx Sheet Using Openpyxl?"