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

如何用to_excel将Pandas DataFrame追加至已有xlsx文件?为何失败?

问题描述

我已经用xlsxwriter向xlsx文件写入内容,代码如下:

workbook = xlsxwriter.Workbook(file_name)
worksheet = workbook.add_worksheet()
worksheet.write(row, col, value)
worksheet.close()

我希望通过to_excel方法在该文件的已有行之后添加一个DataFrame,代码如下:

df.to_excel(file_name,
            startrow=len(existing_content),
            engine='xlsxwriter')

但该操作未生效,DataFrame并未被插入到文件中,请问原因是什么?

原因及解决办法
  • xlsxwriter不支持追加写入:xlsxwriter引擎仅支持创建新文件或覆盖已有文件,无法对已存在的Excel文件执行追加内容的操作,这是导致你操作失效的核心原因。
  • 正确实现方式:若要在已有Excel文件后追加DataFrame,需改用支持追加模式的引擎(比如openpyxl,适用于xlsx格式),具体步骤如下:
    1. 先读取原文件内容,获取已有数据的行数
    2. 以mode='a'的方式打开文件,指定startrow写入DataFrame

示例代码:

import pandas as pd
from openpyxl import load_workbook

# 获取已有内容的行数
excel_file = pd.ExcelFile(file_name)
df_existing = excel_file.parse(excel_file.sheet_names[0])
existing_rows = len(df_existing)

# 追加DataFrame到文件
with pd.ExcelWriter(file_name, engine='openpyxl', mode='a', if_sheet_exists='overlay') as writer:
    df.to_excel(writer, startrow=existing_rows, index=False)

注:原文件用xlsxwriter创建时,用openpyxl打开不会有兼容性问题,二者均遵循标准xlsx格式规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:35:14