I want to have multiple groups on outline level 1 and over these groups I want to have 1 group which is on outline level 2, like that:
But with my code the outer group always "overwrites" or removes the inner groups:
Code
import openpyxl
wb = openpyxl.load_workbook("Planung.xlsx")
ws = wb["Zeitplan"]
ws.sheet_properties.outlinePr.summaryBelow = False
ws.row_dimensions.group(9, 11, outline_level=1)
ws.row_dimensions.group(13, 13, outline_level=1)
ws.row_dimensions.group(16, 17, outline_level=1)
ws.row_dimensions.group(7, 17, outline_level=2)
wb.save('test.xlsx')
Reproduction steps
- Create file called
Planung.xlsx - Create sheet called
Zeitplanin the created workbook - Run code
- Open
test.xlsx
>Solution :
There is a problem with the rank of your outline_levels, which messes up the nesting.
Here is a possible fix :
import openpyxl
wb = openpyxl.load_workbook("Planung.xlsx")
ws = wb["Zeitplan"]
ws.sheet_properties.outlinePr.summaryBelow = False
ws.row_dimensions.group(7, 17, outline_level=1)
ws.row_dimensions.group(9, 11, outline_level=2)
ws.row_dimensions.group(13, 13, outline_level=2)
ws.row_dimensions.group(16, 17, outline_level=2)
wb.save("test.xlsx")
Output :


