如何在保留所有其他工作表的同时覆盖现有 Excel 工作表上的数据?
Posted
技术标签:
【中文标题】如何在保留所有其他工作表的同时覆盖现有 Excel 工作表上的数据?【英文标题】:How to overwrite data on an existing excel sheet while preserving all other sheets? 【发布时间】: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")
有没有办法覆盖现有的工作表?
【问题讨论】:
【参考方案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
知道工作表。否则,它将使用您传递的名称创建一个新工作表。
【讨论】:
这对我有用,谢谢以上是关于如何在保留所有其他工作表的同时覆盖现有 Excel 工作表上的数据?的主要内容,如果未能解决你的问题,请参考以下文章
excel中怎么样按某一列的数据自动分成多个工作簿,保留原表的表头。
无法在不覆盖的情况下将 R 数据框附加到现有 Excel 中