如何用Python给导出的Excel文件添加自定义行标题?
解决Excel导出时添加自定义行的问题
错误原因分析
你之前的尝试存在两个问题:
df.insert()是Pandas中插入列的方法,并非插入行,用它处理行操作必然出错;- 新建DataFrame时直接覆盖了原有
df变量,导致之前读取的Excel数据丢失,正确做法是合并而非覆盖。
方案1:在数据上方添加自定义行
适合将说明放在数据表头下方、正式数据之前,确保列对齐:
import tkinter as tk from tkinter import filedialog import pandas as pd root = tk.Tk() root.withdraw() file_path = filedialog.askopenfilename() df = pd.read_excel(file_path, usecols=['date','time']) # 创建匹配原DataFrame列名的自定义行 custom_row = pd.DataFrame([['Exported By: 你的名字', '']], columns=df.columns) # 合并自定义行与原数据,自定义行前置 df_with_custom = pd.concat([custom_row, df], ignore_index=True) path_to_save = filedialog.asksaveasfilename(defaultextension='.xlsx') df_with_custom.to_excel(path_to_save, index=False)
方案2:在数据末尾添加自定义行
如果需要将说明放在所有数据之后:
# 同上,先读取原数据... # 创建自定义行,列名与原数据一致 custom_row = pd.DataFrame([['', 'Exported By: 你的名字']], columns=df.columns) # 合并自定义行与原数据,自定义行后置 df_with_custom = pd.concat([df, custom_row], ignore_index=True) # 保存文件...
方案3:跨列显示自定义说明行
如果需要让“Exported By: XXX”跨所有列显示,需要借助xlsxwriter引擎实现单元格合并:
import tkinter as tk from tkinter import filedialog import pandas as pd root = tk.Tk() root.withdraw() file_path = filedialog.askopenfilename() df = pd.read_excel(file_path, usecols=['date','time']) path_to_save = filedialog.asksaveasfilename(defaultextension='.xlsx') # 使用xlsxwriter引擎,需先安装:pip install xlsxwriter with pd.ExcelWriter(path_to_save, engine='xlsxwriter') as writer: worksheet = writer.book.add_worksheet() # 写入说明并合并A1到B1单元格(对应原数据的2列) worksheet.merge_range('A1:B1', 'Exported By: 你的名字') # 从第3行开始写入原数据(第1行是说明,第2行是表头) df.to_excel(writer, startrow=2, index=False)
内容的提问来源于stack exchange,提问作者mick
相关产品推荐
相关产品推荐

