首页 > 解决方案 > 在现有工作簿中多次将唯一数据框写入同一张工作表

问题描述

我有一个带有 Sheet1、Sheet2 和 Sheet3 的 Excel 工作簿。我正在尝试在工作簿中创建一个新工作表(我们称之为 NewSheet)并将数据帧多次写入 NewSheet,同时还维护 Sheet1、Sheet2 和 Sheet3

例如我想做

df1.to_excel(writer, sheet_name="NewSheet")
df2.to_excel(writer, sheet_name="NewSheet", startrow=10)

或者在某些情况下

row=0
list_of_dfs=[df1,df2,df3]
for df in list_of_dfs:
     df.to_excel(writer,sheet_name="NewSheet",startrow=row
     row=row+len(df)+2

问题出在writer=pd.ExcelWriter(save_name, engine='openpyxl', mode='a', if_sheet_exists='replace')

如果if_sheet_exists='replace'那么只有最后一个写入工作表的数据帧被保存,而其他数据帧则丢失,因为每次都替换整个工作表

如果if_sheet_exists='new'然后每个数据帧都写入一个新工作表,结果是一堆名为 NewSheet1、NewSheet2 等的工作表,而不是全部写入同一个工作表。

如何在现有工作簿中多次写入同一张工作表?

标签: pythonpandasopenpyxl

解决方案


推荐阅读