输出文件运行前(有两张表,"表1"和"Sheet1"):
目录
- 一:写入单表(删除所有旧工作表,写入新表)
- 二:写入多表(删除所有旧工作表,写入新表)
- 三:追加写入(保留原有表格,旧表第一行覆盖写入新数据)
- 四:追加写入(保留原有表格,旧表最后一行不覆盖写入新数据)
一:写入单表(删除所有旧工作表,写入新表)
python
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直接写入
df1.to_excel('output.xlsx', sheet_name='Sheet1',index=None)
df2.to_excel('output.xlsx', sheet_name='Sheet2',index=None)
运行后(原"表1""Sheet1"删除,写入"Sheet2"):
二:写入多表(删除所有旧工作表,写入新表)
python
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)
或者
python
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()相当于open()函数
writer赋值时要像打开文件那样进行上下文管理,需要调用close()来关闭保存文件。
否则使用with语句,不需要调用close()。
'''
运行后(原"表1""Sheet1"删除,写入新"Sheet1""Sheet2"):
三:追加写入(保留原有表格,旧表第一行覆盖写入新数据)
python
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)
df2.to_excel(writer, sheet_name='Sheet2',index=None)
运行后(原"表1""Sheet1"保留,在"Sheet1"写入新数据,新建"Sheet2"):
四:追加写入(保留原有表格,旧表最后一行不覆盖写入新数据)
python
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"保留,在"Sheet1"写入新数据,新建"Sheet2"):