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

如何将Pandas DataFrame写入已有Excel工作表的指定位置

当然有可行的方法啦!不用费劲逐个单元格赋值,咱们可以用pandas搭配openpyxl库轻松实现把DataFrame写入已有Excel工作表的指定位置(从A2单元格开始)。下面给你一步步拆解:

准备工作

首先确保你已经安装了所需的库,如果还没装,在终端里运行这条命令:

pip install pandas openpyxl
具体实现代码

结合你给出的示例DataFrame,完整代码如下:

import pandas as pd
from openpyxl import load_workbook

# 你的示例DataFrame
df = pd.DataFrame([[1,2,3],[1,2,3]], columns=list('ABC'))

# 替换成你的实际Excel文件路径
excel_file_path = "your_excel_file.xlsx"
# 替换成你要写入的目标工作表名称
target_sheet_name = "Sheet1"

# 加载已有的Excel工作簿
existing_workbook = load_workbook(excel_file_path)

# 创建ExcelWriter对象,设置追加模式并关联已加载的工作簿
writer = pd.ExcelWriter(
    excel_file_path,
    engine="openpyxl",
    mode="a",
    if_sheet_exists="overlay"  # 关键参数:覆盖已有工作表的内容而非新建
)
writer.book = existing_workbook

# 将DataFrame写入指定位置:A2对应startrow=1(行索引从0开始),startcol=0(列索引从0开始)
df.to_excel(
    writer,
    sheet_name=target_sheet_name,
    startrow=1,
    startcol=0,
    index=False,  # 不写入DataFrame的索引列
    header=True   # 保留DataFrame的表头
)

# 保存并关闭Writer,完成写入
writer.close()
关键参数解释
  • mode="a":以追加模式打开Excel文件,避免覆盖整个文件
  • if_sheet_exists="overlay":当目标工作表已存在时,直接在原有工作表上写入内容,而不是创建新的同名工作表
  • startrow=1:Excel的A2单元格对应行索引1(因为Python里索引从0开始)
  • startcol=0:Excel的A列对应列索引0
  • index=False:如果不需要把DataFrame的索引写入Excel,就设置为False,避免多出一列无用数据
注意事项
  • 运行代码前,确保目标Excel文件没有被其他程序(比如Excel软件)打开,否则会出现权限错误
  • 如果你的Excel文件是旧版的.xls格式,需要改用xlrd和xlwt库,但更推荐使用.xlsx格式配合openpyxl,兼容性更好

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 20:34:06