Недавно я работал над своим небольшим проектом, который автоматически генерирует таблицы рабочих часов для меня.Это работает хорошо только для меня, но когда я хочу сгенерировать несколько рабочих листов (позже упоминаемых как листы) или создать несколько электронных таблиц, это перезаписывает старую.
Для открытия, редактирования и создания электронной таблицы я использую openpyxl lib.
Я пытался переместить сохраненную часть и создать часть вне циклов и т. Д., Но ничего из этого мне не помогло.
Вопрос в том, как запретить циклу перезаписывать файл, а не генерировать новый?
Ниже приведен основной фрагмент этого программного обеспечения.
cols = [2, 3, 4, 12]
row = 9
hrs = 0
nhrs = 0
for worker in workers:
sheet.title = ('{} {}'.format(worker.name, worker.surename))
for day, hday in itertools.zip_longest(days, holidays):
if day.weekday() <= 4 and day not in holydays:
sheet.cell(row=row, column=cols[0]).value = '08:00'
sheet.cell(row=row, column=cols[1]).value = '16:00'
sheet.cell(row=row, column=cols[2]).value = '8 h'
hrs += 8
row += 1
elif day.weekday() > 4 and day not in holidays:
sheet.cell(column=cols[0], row=row).value = ''
row += 1
elif day in holidays:
sheet.cell(column=cols[3], row=row).value = '8 h'
nhrs += 8
row += 1
sheet.cell(column=cols[2], row=40).value = str(hrs) + ' h'
sheet.cell(column=cols[3], row=40).value = str(nhrs) + ' h'
workbook.save('SPREADSHEET_{}.xlsx'.format(native_month))
print('Done')
Заранее спасибо!
Редактировать из комментария:
# native_month for the workbook name is provided by this function applied to a 1-12
def month_name_native(month):
months = ["Unknown", "Januar", "Februar", "Mart", "April", "Maj", "Jun",
"Jul", "August", "Septembar", "Oktobar", "Decembar" ]
return months[month].upper()