【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

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【python】追加写入excel,合并工作簿

    发表回复