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

use*_*437 9 python excel dataframe pandas

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

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

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

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

May*_*wal 12

您可以使用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()
Run Code Online (Sandbox Code Playgroud)

您需要初始化writer.sheets才能ExcelWriter了解工作表。否则,它将使用您传递的名称创建一个新工作表。