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

pandas将DataFrame写入Excel时添加自定义多行表头的实现方案问询

你可以配合pandas+openpyxl实现需求,不需要修改原始DataFrame的索引结构,也不用依赖多级索引,思路是先把数据写入Excel指定的起始行,空出前面的位置手动补充自定义表头内容,具体实现代码如下:

import pandas as pd
from openpyxl import load_workbook
from openpyxl.styles import Alignment, Border, Side

# 你的原始DataFrame
df = pd.DataFrame([[1, 2], [1, 3], [4, 6]], columns=['A', 'B'])
output_path = "output.xlsx"

# 导出时关闭pandas自带的表头,数据从Excel第6行(1-based)开始写入,对应pandas的startrow=5(0-based)
df.to_excel(output_path, startrow=5, index=False, header=False)

# 加载生成的Excel文件补全自定义表头
wb = load_workbook(output_path)
ws = wb.active

# 第一行表头:合并A1-B1单元格,填写App Input
ws.merge_cells('A1:B1')
ws['A1'] = "App Input"

# 可选:给第二、三行添加下边框实现示例里的分隔线效果
thin_border = Border(bottom=Side(style='thin'))
for col in ['A', 'B']:
    ws[f'{col}2'].border = thin_border
    ws[f'{col}3'].border = thin_border

# 第四行填写原始列名
ws['A4'] = "A"
ws['B4'] = "B"

# 第五行填写data标识
ws['A5'] = "data"
ws['B5'] = "data"

# 可选:所有表头内容居中对齐
for row in ws.iter_rows(min_row=1, max_row=5):
    for cell in row:
        cell.alignment = Alignment(horizontal='center', vertical='center')

# 保存修改后的文件
wb.save(output_path)

你可以根据实际需求调整表头的行数、内容、合并单元格范围、样式,不需要改动DataFrame本身的结构,适配你不想用多级索引的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 06:36:03