创建新的 sheet 会覆盖通过 openpyxl 创建的现有 sheet

Creating new sheet overwrites existing sheet created via openpyxl

我正在尝试使用 pandas 数据框直接在 excel 中创建条形图。在相同的输出 excel 中,我想在单独的 sheet 中保存用于条形图的原始 csv。我的代码:

    wb = openpyxl.Workbook() 
    ws = wb.active 

    for row in dataframe_to_rows(new_df, index=False, header=False):
        ws.append(row)

    chart = BarChart()
    values = Reference(ws, min_col=1, min_row=1, max_col=2, max_row=ws.max_row)
    labels = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=ws.max_row)

    chart.add_data(values)
    chart.set_categories(labels)

    ws.add_chart(chart, "E2")

    wb.save("~/barChart.xlsx")
    writer = pd.ExcelWriter("~/barChart.xlsx", engine='openpyxl')
    df.to_excel(writer, sheet_name="Source_data")
    writer.save()

我遇到的问题是最后三行,它覆盖了生成的条形图。我该如何克服这个问题?

来自 pandas documentation:
ExcelWriter 也可用于附加到现有的 Excel 文件:

    with pd.ExcelWriter('output.xlsx', mode='a') as writer:  
        df.to_excel(writer, sheet_name='Sheet_name_3')