一尘不染

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

python

我有一个熊猫数据框df,我想将其覆盖到一个Dataexcel文件表中,同时保留所有其他表,因为其他表具有与表链接的公式Data

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

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

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


阅读 344

收藏
2021-01-20

共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知道工作表。否则,它将使用您传递的名称创建一个新工作表。

2021-01-20