一:删除写入代码(删除所有旧表)

import pandas as pd

df1 = pd.DataFrame({
    'A': [1, 1, 1],
    'B': [1, 1, 1]
})

df2 = pd.DataFrame({
    'C': [0, 0, 0],
    'D': [0, 0, 0]
})
# 使用 ExcelWriter 写入不同的 sheet
with pd.ExcelWriter('output.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Sheet1',index=None)
    df2.to_excel(writer, sheet_name='Sheet2',index=None)

或者

import pandas as pd

df1 = pd.DataFrame({
    'A': [1, 1, 1],
    'B': [1, 1, 1]
})
df2 = pd.DataFrame({
    'C': [0, 0, 0],
    'D': [0, 0, 0]
})
# 使用 ExcelWriter 写入不同的 sheet
writer=pd.ExcelWriter('output.xlsx')
df1.to_excel(writer, sheet_name='Sheet1',index=None)
df2.to_excel(writer, sheet_name='Sheet2',index=None)
writer.close()

excelwriter()允许同时往工作簿写入多表, 没有excelwriter()直接to_excel()只能写入单表
此外,excelwriter()相当于open()函数,writer赋值时要像打开文件那样进行上下文管理,需调用close()来关闭并保存excel。
如果使用with语句,则不用close()。


二:追加写入代码(保留所有旧表)

默认从第一行开始覆盖原文写入(只覆盖内容,格式不变),startrow=3, startcol=0表示开始写入的单元格位置。
或者用contact函数将旧表和新表连接再写入。

import pandas as pd

df1 = pd.DataFrame({
    'A': [1, 1, 1],
    'B': [1, 1, 1]
})

df2 = pd.DataFrame({
    'C': [0, 0, 0],
    'D': [0, 0, 0]
})
# 使用 ExcelWriter 写入不同的 sheet
with pd.ExcelWriter('output.xlsx',mode='a', engine='openpyxl', if_sheet_exists="overlay") as writer:
    df1.to_excel(writer, sheet_name='Sheet1',index=None, startrow=3, startcol=0)
    df2.to_excel(writer, sheet_name='Sheet2',index=None)

三、结果展示

输出文件运行前(有两张表,“表1”和“Sheet1”):
在这里插入图片描述
在这里插入图片描述


删除写入,运行结果(“表1”“Sheet1”删除,新建“Sheet1”“Sheet2”):
在这里插入图片描述
在这里插入图片描述


追加写入,运行结果(“表1”“Sheet1”保留,新建“Sheet2”,在“Sheet1”写入新数据,):

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐