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

使用Python(openpyxl)将CSV数据导入Excel模板并另存新文件

解决方案:将CSV数据导入Excel模板并保存为新文件

没问题,我来帮你完善代码,实现把CSV数据导入Excel模板的指定工作表,并且保留原模板文件的需求。以下是完整的可运行代码,以及关键步骤的解释:

完整代码

import pandas as pd
from openpyxl.utils.dataframe import dataframe_to_rows
import openpyxl

# 读取你的CSV数据文件(替换为实际路径)
csv_df = pd.read_csv("your_input.csv")

# 加载Excel模板文件,保留原格式和样式
template_wb = openpyxl.load_workbook("template.xlsx")

# 获取模板中名为"data"的目标工作表
target_ws = template_wb["data"]

# 将CSV数据从工作表的第二行开始写入
# 跳过DataFrame的索引和表头,仅写入纯数据行
for row_num, row_data in enumerate(dataframe_to_rows(csv_df, index=False, header=False), start=2):
    for col_num, cell_value in enumerate(row_data, start=1):
        target_ws.cell(row=row_num, column=col_num, value=cell_value)

# 保存为新文件,原模板文件不会被修改
template_wb.save("result.xlsx")

关键细节说明

  • 保留模板格式:使用openpyxl.load_workbook加载模板,而不是用pandas直接写入,这样能完整保留模板中的单元格样式、公式、格式设置,避免丢失原有排版。
  • 精准写入位置:通过enumerate(..., start=2)让数据从第二行开始写入,正好对应模板第一行的表头下方,不会覆盖表头内容。
  • 数据匹配:dataframe_to_rows的index=False和header=False参数确保只写入CSV中的纯数据,不会把DataFrame的索引和表头重复写入模板(因为模板已经有自己的表头了)。
  • 不修改原模板:最后保存为result.xlsx,原template.xlsx文件完全不受影响。

注意事项

  • 请把代码中的your_input.csv替换为你实际的CSV文件路径。
  • 确保模板中确实存在名为data的工作表,且CSV的列数和该工作表的列数一致,避免数据错位。
  • 如果CSV数据中有特殊格式(比如日期、数字格式),openpyxl会尽量保留数据类型,但如果需要更精准的格式控制,可以额外添加单元格格式设置的代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:32:14