TypeError: 'NoneType' object does not support item assignment

Sashashesss

Новичок
Пользователь
Авг 1, 2020
1
0
1
ОП: Windows
Python 3.8
pip install openpyxl

Я только учусь и, возможно, ошибка наиглупейшая (пожалуйста не надо стебать если что), но помогите понять, что я делаю не так:

Задача: создать через python файл xslx, пользователь с клавиатуры вводит данные, данные сохраняются в xslx файл, закрываем.
Выдает ошибку "'NoneType' object does not support item assignment" на моменте записи в xslx введенных пользователем данных


Код:
import openpyxl as op
from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font, Side

# Создать рабочую книгу в Excel:
wb = op.Workbook('Clients')
sheet = wb.active

# создание листа
ws = wb.create_sheet('Sheet1')

# Ввод данных
row = 1
A = 0
B = '0'
while B != 0 :
    A += 1
    print( 'FullName: ' )
    B = input()
    print( 'Gender: ' )
    C = input()
    print( 'DateOfBirth: ' )
    D = input()
    print( 'City: ' )
    E = input()
    print( 'DiscountCardNumber: ' )
    F = input()
    rows = [str(A), B, C, D, E, F]  # Заполнить данными
    for item in rows:
        row += 1
        sheet['A' +str( row )] = item[0]   #!!!ВОТ ЗДЕСЬ ОШИБКА!!!
        sheet['B'+str( row )] = item[1]
        sheet['C'+str( row )] = item[2]
        sheet['D'+str( row )] = item[3]
        sheet['E'+str( row )] = item[4]
        sheet['F'+str( row )] = item[5]
    for row in rows :
        sheet.append( row )
    print( 'If the input is complete write 0' )

wb.save( 'Clients.xlsx' )

wb.close()
 

Jerry

Пользователь
Пользователь
Июл 28, 2020
29
12
3
Python:
import openpyxl as op

# Создать рабочую книгу в Excel:
# op.Workbook() создает новую книгу,
# для открытия существующей используется
# wb = op.load_workbook('Clients.xlsx')
wb = op.Workbook()

# при создании новой книги первый лист создается
# по умолчанию и является активным
sheet = wb.active

# Ввод данных
# строка
row = 0
# номер по порядку
A = 0
# ввод завершен
done = False

# пока ввод не завершен
while not done:
    # перейти на следующую строку
    row += 1
    # увеличить номер по порядку
    A += 1
    # запросить имя
    print( 'FullName: ' )
    B = input()
    # запросить пол
    print( 'Gender: ' )
    C = input()
    # запросить дату рождения
    print( 'DateOfBirth: ' )
    D = input()
    # запросить город
    print( 'City: ' )
    E = input()
    # запросить номер карты
    print( 'DiscountCardNumber: ' )
    F = input()

    # добавить полученные данные в текущий лист
    sheet['A'+str( row )] = A
    sheet['B'+str( row )] = B
    sheet['C'+str( row )] = C
    sheet['D'+str( row )] = D
    sheet['E'+str( row )] = E
    sheet['F'+str( row )] = F

    # вывести содержимое листа
    for row_data in sheet.iter_rows(values_only=True):
        print(row_data)

    # запросить окончание работы
    print( 'If the input is complete write 0' )
    done = bool(input() == '0')

# сохранить книгу
wb.save( 'Clients.xlsx' )
 
  • Мне нравится
Реакции: Sashashesss

Форум IT Специалистов