【python】追加写入excel,合并工作簿
目录
一:删除写入代码(删除所有旧表)
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”写入新数据,):
作者:qq_50653422