如何在保留所有其他工作表的情况下覆盖现有Excel工作表上的数据?

10

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

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

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

有没有一种方法可以覆盖现有工作表上的内容?

1个回答

14

您可以使用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()

为了让 ExcelWriter 知道这些表格页,你需要初始化 writer.sheets。否则,它会创建一个名字和你传入的不同的新表格页。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接