Объект 'NoneType' не имеет атрибута 'max_row' - PullRequest
0 голосов
/ 05 июля 2018
os whidow7
python3.6
openpyxl 2.5.4
------------------------------------------------------------------
<b>how to solve this problem?

Traceback (most recent call last):
  File "C:\python\updataProduce.py", line 22, in 
    countRow = sheet.max_row()
AttributeError: 'NoneType' object has no attribute 'max_row'
</b>
-----------------------------------------------------------
#! python3
# updataProduce.py - corrects costs in produce sales spreadsheet

from openpyxl import Workbook
wb = Workbook('produceSales.xlsx')
sheet = wb.active

# The produce types and their updated price
PRICE_UPDATES = {'Garlic': 3.07, 'Celery': 1.19, 'Lemon':1.27}

# TODO: loop through the rows and update the PRICE
countRow = sheet.max_row()
print(countRow)
for rowNum in range(2, countRow) :
    produceName = sheet.cell(row = rowNum, column = 1).value
    if produceName in PRICE_UPDATES:
        sheet.cell(row = rowNum, column = 2).value = PRICE_UPDATES[produceName]
wb.save('updateProduceSales.xlsx')

1 Ответ

0 голосов
/ 05 июля 2018
#! python3
# updataProduce.py - corrects costs in produce sales spreadsheet

from openpyxl import Workbook
wb = Workbook('produceSales.xlsx')
sheet = wb.active

# The produce types and their updated price
PRICE_UPDATES = {'Garlic': 3.07, 'Celery': 1.19, 'Lemon':1.27}

# TODO: loop through the rows and update the PRICE
countRow = sheet.max_row
print(countRow)
for rowNum in range(2, countRow) :
    produceName = sheet.cell(row = rowNum, column = 1).value
    if produceName in PRICE_UPDATES:
        sheet.cell(row = rowNum, column = 2).value = PRICE_UPDATES[produceName]
wb.save('updateProduceSales.xlsx')

Это должно сработать для вас сейчас. Сообщение об ошибке объясняет, в чем проблема:

countRow = sheet.max_row() AttributeError: 'NoneType' object has no attribute 'max_row'

Это говорит о том, что объект не имеет атрибута с именем max_row (). Однако он имеет имя max_row. Простая ошибка, но с твоим кодом все в порядке.

...