How can I find the last non-empty row of excel using openpyxl 3.03?

Question:

How can I find the number of the last non-empty row of an whole xlsx sheet using python and openpyxl?

The file can have empty rows between the cells and the empty rows at the end could have had content that has been deleted. Furthermore I don’t want to give a specific column, rather check the whole table.

For example the last non-empty row in the picture is row 13.

enter image description here

I know the subject has been extensively discussed but I haven’t found an exact solution on the internet.

Asked By: Charalamm

||

Answers:

# Open file with openpyxl
to_be = load_workbook(FILENAME_xlsx)
s = to_be.active

last_empty_row = len(list(s.rows))
print(last_empty_row)
## Output: 13

s.rows is a generator and its list contains arrays of each rows cells.

Answered By: Charalamm

openpyxl‘s class Worksheet has the attribute max_rows

Answered By: johnson

If you are looking for the last non-empty row of an whole xlsx sheet using python and openpyxl.

Try this:

import openpyxl

def last_active_row():
    workbook = openpyxl.load_workbook(input_file)
    wp = workbook[sheet_name]
    last_row = wp.max_row
    last_col = wp.max_column
    
    for i in range(last_row):
        for j in range(last_col):
            if wp.cell(last_row, last_col).value is None:
                last_row -= 1
                last_col -= 1 
            else:
                print(wp.cell(last_row,last_col).value) 
    print("The Last active row is: ", (last_row+1)) # +1 for index 0

if __name__ = '___main__':
last_active_row()

This should help.

Answered By: Ranjeet R Patil
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.