Code
df.to_excel(
writer,
index=False,
startrow=2,
sheet_name=self.sheet_name
)
ws = writer.book.get_worksheet_by_name(self.sheet_name)
ws.freeze_panes(3, 0)
workbook = writer.book
merge_head_size = workbook.add_format(
{"bold": 1, "border": 1, "align": "left", "valign": "vcenter", 'font_size': 20 if len(df.columns.tolist())>4 else 14})
merge_sub_head_size = workbook.add_format(
{"bold": 1, "border": 1, "align": "left", "valign": "vcenter", 'font_size': 10})
merged_data_one_range = f"B1:E1" if df.columns.tolist() else "B1:G1"
merged_data_range = f"B2:{alphabet_list[len(df.columns.tolist())-1]}2" if df.columns.tolist() else "B2:G2"
# merge_date = f"{alphabet_list[len(df.columns.tolist())-1]}" if df.columns.tolist() else "E1"
blue_background_format = workbook.add_format({'bg_color': '#00b0f0'})
conditional_format_range = f"A3:{alphabet_list[(len(df.columns.tolist())-1)]}3" if df.columns.to_list() else "A3:I3"
ws.conditional_format(conditional_format_range, {'type': 'no_errors', 'format': blue_background_format})
ws.merge_range(merged_data_one_range, self.header_name, merge_head_size)
if merged_data_one_range == 'B1:B1':
ws.write('B1',self.header_name, workbook.add_format({"bold": 1, "border": 1, "align": "left", "valign": "vcenter", 'font_size': 20 if len(df.columns.tolist())>4 else 14}))
ws.merge_range(merged_data_range, self.sub_headings, merge_sub_head_size)
Error
xlsxwriter.exceptions.OverlappingRange: Merge range 'B1:E1' overlaps previous merge range 'B1:E1'.
Any idea on how to resolve the issue?
I tried by changing the sheet variables, but it didn't worked out.