输出文件运行前(有两张表,“表1”和“Sheet1”):
目录
- 一:写入单表(删除所有旧工作表,写入新表)
- 二:写入多表(删除所有旧工作表,写入新表)
- 三:追加写入(保留原有表格,旧表第一行覆盖写入新数据)
- 四:追加写入(保留原有表格,旧表最后一行不覆盖写入新数据)
———————————————————————————————————————————
一:写入单表(删除所有旧工作表,写入新表)
import pandas as pddf1 = pd.DataFrame({'A': [1, 1, 1],'B': [1, 1, 1]
})df2 = pd.DataFrame({'C': [0, 0, 0],'D': [0, 0, 0]
})
# 无ExcelWriter直接写入
df1.to_excel('output.xlsx', sheet_name='Sheet1',index=None)
df2.to_excel('output.xlsx', sheet_name='Sheet2',index=None)
运行后(原“表1”“Sheet1”删除,写入“Sheet2”):
二:写入多表(删除所有旧工作表,写入新表)
import pandas as pddf1 = 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)
'''
不用with语句要加上close(),excelwriter()相当于open()函数
writer赋值时要像打开文件那样进行上下文管理,也就是需要
使用with语句创建。否则需要调用close()来关闭保存文件。
'''
'''
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()
'''
运行后(原“表1”“Sheet1”删除,写入新“Sheet1”“Sheet2”):
三:追加写入(保留原有表格,旧表第一行覆盖写入新数据)
import pandas as pddf1 = 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)df2.to_excel(writer, sheet_name='Sheet2',index=None)
运行后(原“表1”“Sheet1”保留,在“Sheet1”写入新数据,新建“Sheet2”):
四:追加写入(保留原有表格,旧表最后一行不覆盖写入新数据)
import pandas as pddf1 = 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”保留,在“Sheet1”写入新数据,新建“Sheet2”):