You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas to_excel覆盖Excel已有内容,如何实现追加写入?

解决Pandas向Excel追加内容而非覆盖的问题

执行以下代码时:

df = pd.DataFrame(df)
df.to_excel("Lista FATF.xlsx", index=False, startrow=1)

原有Excel文件中的全部内容会被清空,需要实现仅向该Excel文件追加内容而非覆盖原有内容。

方法1:用ExcelWriter追加模式(推荐)

Pandas默认的to_excel会直接覆盖文件,要实现追加,得用pd.ExcelWriter指定追加模式,同时依赖openpyxl引擎(它支持对现有Excel文件的修改)。

示例代码:

import pandas as pd
from openpyxl import load_workbook

# 假设df是你要追加的目标DataFrame
# df = pd.DataFrame(...)

# 以追加模式打开Excel文件
with pd.ExcelWriter("Lista FATF.xlsx", mode="a", engine="openpyxl", if_sheet_exists="overlay") as writer:
    # 获取现有工作表的总行数,确定追加起始位置
    book = load_workbook("Lista FATF.xlsx")
    startrow = book.active.max_row
    # 追加数据,不重复写表头(如果原有文件已有表头)
    df.to_excel(writer, index=False, header=False, startrow=startrow)
  • if_sheet_exists="overlay":指定在已有工作表上追加,不会新建工作表
  • startrow:设置为现有内容的下一行,避免覆盖原有数据
  • 如果需要保留表头,去掉header=False,但要注意不要重复写入表头

方法2:合并原有数据后写入

如果不想依赖特定引擎,也可以先读取原有Excel的内容,和新数据合并后再整体写入:

import pandas as pd

# 读取原有数据,处理文件不存在的情况
try:
    existing_df = pd.read_excel("Lista FATF.xlsx")
    combined_df = pd.concat([existing_df, df], ignore_index=True)
except FileNotFoundError:
    combined_df = df

# 写入合并后的数据
combined_df.to_excel("Lista FATF.xlsx", index=False)

这种方法适合数据量较小的场景,不用考虑引擎兼容性,但需要额外读取原有数据,效率略低。

内容的提问来源于stack exchange,提问作者Sávio Carvalho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 21:39:18