创建新的 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')
我正在尝试使用 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')