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

如何在现有Excel工作簿的同一工作表中多次写入不同DataFrame

已有Excel工作簿同工作表多次写入DataFrame解决方案

问题原因

你遇到的覆盖/自动新建工作表问题,是因为每次写入DataFrame时都重新初始化了ExcelWriter实例,触发了工作表存在校验逻辑。只需要在同一个ExcelWriter实例的生命周期内完成所有写入操作,即可解决该问题,同时不会修改原有Sheet1、Sheet2、Sheet3的内容。

前置依赖

需要安装openpyxl作为Excel读写引擎:

pip install openpyxl pandas>=1.4.0

(if_sheet_exists='overlay'参数要求pandas版本≥1.4.0)

代码实现

固定数量DataFrame写入

import pandas as pd

# 替换为你的本地Excel文件路径
excel_path = "你的工作簿.xlsx"

# 仅初始化一次ExcelWriter,使用追加模式
with pd.ExcelWriter(
    excel_path,
    engine="openpyxl",
    mode="a",
    if_sheet_exists="overlay"
) as writer:
    # 写入第一个DataFrame,从第0行开始
    df1.to_excel(writer, sheet_name="NewSheet", index=False)
    # 写入第二个DataFrame,从第10行开始
    df2.to_excel(writer, sheet_name="NewSheet", startrow=10, index=False)

多DataFrame循环批量写入

import pandas as pd

excel_path = "你的工作簿.xlsx"
# 替换为你要写入的DataFrame列表
df_list = [df1, df2, df3]
# 记录当前写入的起始行号,初始为0
current_start_row = 0

with pd.ExcelWriter(
    excel_path,
    engine="openpyxl",
    mode="a",
    if_sheet_exists="overlay"
) as writer:
    for df in df_list:
        df.to_excel(
            writer,
            sheet_name="NewSheet",
            startrow=current_start_row,
            index=False
        )
        # 计算下一个DataFrame的起始行,+2是为了两个表格之间空2行分隔
        current_start_row += len(df) + 2

低版本pandas兼容方案

如果无法升级pandas到1.4.0及以上版本,可先读取NewSheet的已有内容,和待写入的所有DataFrame拼接后一次性写入:

import pandas as pd
from openpyxl import load_workbook

excel_path = "你的工作簿.xlsx"
df_list = [df1, df2, df3]

# 读取原有工作簿
book = load_workbook(excel_path)
# 如果NewSheet不存在就新建,存在就获取该工作表
if "NewSheet" not in book.sheetnames:
    book.create_sheet("NewSheet")
writer = pd.ExcelWriter(excel_path, engine="openpyxl")
writer.book = book
writer.sheets = {ws.title: ws for ws in book.worksheets}

current_start_row = 0
for df in df_list:
    df.to_excel(writer, sheet_name="NewSheet", startrow=current_start_row, index=False)
    current_start_row += len(df) + 2

writer.save()
writer.close()

内容的提问来源于stack exchange,提问作者Gingerhaze

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:21:02