如何在保留所有其他工作表的同时覆盖现有 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 工作表的一部分?

excel中怎么样按某一列的数据自动分成多个工作簿,保留原表的表头。

无法在不覆盖的情况下将 R 数据框附加到现有 Excel 中

如何覆盖 TableView.rowDelegate 的某些属性,同时保持其他属性为默认值

如何使用微软互操作将工作表开头的新列添加到现有 excel

如何在机器人框架中遍历 Excel 工作表的所有行