Сценарий Python с ошибочным объектом NoneType не имеет атрибута max_row - PullRequest
0 голосов
/ 22 марта 2019

нужна помощь по ошибке, которую я получаю для моего скрипта на python. Мне нужно получить номер последней строки в моем рабочем листе Excel.

Я использую openpyxl==2.5.12.

Ниже приведен код и ошибка, которую я получаю.

код:

workbook = load_workbook(directory)
ws = workbook.active
max_row = ws.max_row

ошибка: 'NoneType' object has no attribute 'max_row'.

Я видел некоторые прошлые ответы на подобные вопросы. Я пытался получить Max_row(), это не работает. Nrows также не работает.

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 22 марта 2019

Ваша проблема не имеет ничего общего с max_row, ошибка говорит о том, что max_row недоступно для объекта, который является NoneType, что указывает на то, что строка workbook = load_workbook(directory) работает неправильно.

Я бы предложил посмотреть на то, что есть directory, потому что оно кажется пустым.

0 голосов
/ 22 марта 2019

Форма документации workbook.active:

Получить текущий активный лист или нет

В вашей рабочей книге нет активного листа. В результате ws = workbook.active устанавливает ws на None вместо листа. Это приводит к сбою ws.max_row, поскольку он работает только на листах.

Вы должны либо: а) исправить свою книгу, чтобы она имела активный лист, либо б) не предшествовать, если вы загружаете книгу без активного листа.

workbook = load_workbook(directory)
ws = workbook.active
if ws is None:
    return  # or `continue` a loop, `raise` an exception, `sys.exit` the program, ...
max_row = ws.max_row
...