openpyxl est un module Python qui permet de manipuler les fichiers tableur au format XLS et XLSX (Excel 2010). Il fonctionne à merveille sur la plupart des fichiers, mais dans certains cas, notamment en lecture seule, la méthode get_highest_row() (ou l'attribut max_row) qui est censée renvoyer le nombre de lignes, retourne None :

>>> from openpyxl import load_workbook
>>> wb = load_workbook(filename='file.xlsx', read_only=True)
>>> ws = wb[0]
>>> ws.max_row
None

La petite astuce réside dans le fait de forcer le calcul des dimensions :

>>> ws.calculate_dimension(force=True)
>>> ws.max_row
418

Source : openpyxl / openpyxl / issues / #278 - get_highest_row/column are unreliable

Mots clefs
openpyxl get worksheet rows