单击按钮时,应进行计算并创建一个新的 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')
简而言之,在将信息写入 excel 之前,您需要添加空的“单元格”,据我了解,这对于库来说是必要的,因为。实际上没有添加任何内容。
举个例子:
在这里,我添加了 7 个“单元格”,因为。该文档使用 7 列。