openpyxl can not add a chart after using remove_sheet command to delete one sheet
Created originally on Bitbucket by Jimmy_Xie (Jimmy Xie)
I use command remove_sheet to delete one sheet in a workbook. After the command executed, the charts in other sheets disappear. And I can not add chart to other sheets. Following code shows after sheet1 is deleted, the chart in sheet2 disappears.
#!python
from openpyxl import Workbook
from openpyxl.chart import Reference, Series, BarChart, BarChart3D, LineChart, LineChart3D, PieChart, PieChart3D
wb = Workbook()
def populate(sheet_name = 'sheet1'):
ws = wb.create_sheet()
ws.title = sheet_name
data = [
['', 'loop1', 'loop2', 'Others', 'Unknown'],
['Good_Command', 2, 40, 30, 1],
['Bad_Command', 3, 40, 25, 4],
['Uncertain', 4, 50, 30, 5],
]
for i in data:
ws.append(i)
chart1 = BarChart()
chart1.type = "bar"
chart1.style = 11
chart1.title = "Horizontal Bar Chart"
chart1.y_axis.title = 'Test number'
chart1.x_axis.title = 'Sample length (mm)'
data = Reference(ws, min_col=2, min_row=1, max_row=7, max_col=3)
cats = Reference(ws, min_col=1, min_row=2, max_row=7)
chart1.add_data(data, titles_from_data=True)
chart1.set_categories(cats)
chart1.shape = 4
ws.add_chart(chart1, "H2")
populate('sheet1')
populate('sheet2')
wb.remove_sheet(wb['sheet1'])
wb.save('Bar.xlsx')