Как объединить одинаковые ячейки в столбце с помощью python xlwt?
Я использую python xlwt для генерации файла excel (отчета). Я никак не могу объединить ячейки столбца с одинаковыми значениями (столбец A и столбец с итогами). Например, я приложил скриншоты того, как я получаю вывод сейчас и к какому виду вывода его нужно привести.
Моя функция формирует отчет следующего вида: введите здесь описание изображения
Пожалуйста, помогите мне сделать так, чтобы это выглядело следующим образом: введите описание изображения здесь
Функция создания отчета:
def export_excel(request):
response = HttpResponse(content_type='application/ms-excel')
response['Content-Disposition'] = ("attachment; filename=Numbers_" + str(datetime.datetime.now().strftime("%d/%m/%y")) + '.xls')
wb = xlwt.Workbook(encoding='utf-8')
ws = wb.add_sheet('Numbers', cell_overwrite_ok=True)
row_num = 0
font_style = xlwt.XFStyle()
font_style.font.bold = True
columns = ['Подразделение',
'Номер',
'Сумма',
'Итог (Сумма+ндс+абон.плата)',
'Итог по подразделению']
for col_num in range(len(columns)):
ws.write(row_num, col_num, columns[col_num], font_style)
font_style = xlwt.XFStyle()
rows = ReportFilter(request.GET,
queryset=Parser.objects.all().values_list(
'attachment__attachment',
'number',
'pay',
'result')).qs
rows1 = Numbers.objects.filter(is_enabled=True).values_list('attachment__attachment', 'number')
res = 0
temp = []
for item1 in rows:
temp.append(item1)
res += item1[3]
for item2 in rows1:
if Parser.objects.filter(number=item2[1]):
None
else:
item2 = list(item2)
item2.append(250)
item2.append(250)
res += item2[3]
item2 = tuple(item2)
temp.append(item2)
temp.sort()
temp = tuple(temp)
for row in temp:
row_num += 1
for col_num in range(len(row)):
if isinstance(row[col_num], datetime.datetime):
date_time = row[col_num].astimezone(datetime.timezone(datetime.timedelta(hours=7))).strftime('%d/%m/%Y')
ws.write(row_num, col_num, date_time, font_style)
ws.write_merge(1, row_num, 0, 0, f'{str(row[0])}')
else:
ws.write(row_num, col_num, row[col_num], font_style)
ws.write(row_num + 1, 2, 'ОБЩИЙ ИТОГ:', xlwt.easyxf('font: bold 1'))
ws.write(row_num + 1, 3, res, xlwt.easyxf('font: bold 1'))
wb.save(response)
return response
Заранее благодарю за помощь.