【问题标题】:How to overwrite data on an existing excel sheet while preserving all other sheets?如何在保留所有其他工作表的同时覆盖现有 Excel 工作表上的数据?
【发布时间】:2020-09-07 23:53:35
【问题描述】:

我有一个 pandas 数据框 df,我想将其覆盖到 Excel 文件的工作表 Data,同时保留所有其他工作表,因为其他工作表具有链接到工作表 Data 的公式

我使用了以下代码,但它不会覆盖现有工作表,它只是创建一个名为 Data 1 的新工作表

with pd.ExcelWriter(filename, engine="openpyxl", mode="a") as writer:
     df.to_excel(writer, sheet_name="Data")

有没有办法覆盖现有的工作表?

【问题讨论】:

    标签: python excel pandas dataframe


    【解决方案1】:

    你可以使用 openpyxl:

    import pandas as pd
    from openpyxl import load_workbook
    
    book = load_workbook(filename)
    writer = pd.ExcelWriter(filename, engine='openpyxl') 
    writer.book = book
    
    writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
    
    df.to_excel(writer, "Data")
    
    writer.save()
    

    您需要初始化 writer.sheets 以便让 ExcelWriter 知道工作表。否则,它将使用您传递的名称创建一个新工作表。

    【讨论】:

    • 这对我有用,谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多