Как в новом файле Excel записать информацию взятую из существующего файла Excel, с использованием openpyxl?
При нажатии на кнопку должны проводиться расчеты и создаваться новый файл Excel. На данный момент почему-то происходит превышение допустимого диапазона у кортежа в wbsheet[row][1].value = Name2 (обработка начинается со второй строки, т.к. в первой названия столбцов)
def button_action(self):
wb = openpyxl.Workbook()
wb.create_sheet('Sheet1')
wbsheet = wb['Sheet1']
book = openpyxl.load_workbook(r'AO\Name.xlsx')
sheet = book['Sheet1']
col = sheet.max_row ///87
raschety = int(self.rasch_entry.get())
for row in range(2, col+1):
WbId= int(sheet[row][0].value)
Name2 = int(sheet[row][1].value)
Name3 = int(sheet[row][3].value)
Name4 = int(sheet[row][3].value)
Name5 = int(sheet[row][4].value)
Name6 = str(sheet[row][5].value)
Name7 = int(sheet[row][6].value)
print(WbIda)///1,2,3,4
if raschety <= Name4:
Name8 = Name4 / (Name2 * Name3)
Name9 = Name4 / (Name5 * Name7)
Name10 = Name8 * Name9
wbsheet[row][0].value = WbIda
wbsheet[row][1].value = Name2 ///IndexError: tuple index out of range
wbsheet[row][2].value = Name3
wbsheet[row][3].value = Name4
wbsheet[row][4].value = Name5
wbsheet[row][5].value = Name6
wbsheet[row][6].value = Name7
wbsheet[row][7].value = Name8
wbsheet[row][8].value = Name9
wbsheet[row][9].value = Name10
wb.save('NameDone.xlsx')
Ответы (1 шт):
Автор решения: Wydka
→ Ссылка
Короче, перед тем как записывать информацию в excel, требуется добавить пустые "ячейки", как я понимаю это нужно именно для библиотеки, т.к. фактически ничего не добавляется.
Как пример:
sheet21.append(['', '', '', '', '', '', ''])
Тут я добавил 7 "ячеек" т.к. в документе используется 7 столбцов.