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

如何用Python结合Pandas与Docxtpl将CSV图片插入Docx替换{{image}}标签

解决docxtpl替换Word模板图片的问题

docxtpl替换图片不能直接传路径文本,需要使用InlineImage类生成图片对象,具体操作如下:

  1. 从docxtpl导入InlineImage类
  2. 基于CSV中存储的图片路径创建InlineImage实例(必须传入DocxTemplate对象作为第一个参数)
  3. 将实例绑定到context的对应键,模板中用{{image}}调用

修改后的代码示例:

from docxtpl import DocxTemplate, InlineImage  # 新增导入InlineImage
import pandas as pd 

doc = DocxTemplate("plantilla-mi-info.docx")
df = pd.read_csv('fake_data.csv')

for index, row in df.iterrows():
    # 假设csv的image列存储的是图片本地路径
    img_path = row['image']
    # 创建InlineImage对象
    img = InlineImage(doc, img_path)
    context = {
        'a': row['a'],
        'b': row['b'],
        'image': img  # 对应模板中的{{image}}
    }
    doc.render(context)
    doc.save(f"descargo_{index}.docx")
    # 每次循环后重新加载模板,避免重复渲染导致的异常
    doc = DocxTemplate("plantilla-mi-info.docx")
Python基础学习建议
  • 先掌握核心语法:变量、数据类型、条件判断、循环、函数、类与对象等基础内容
  • 熟悉常用数据结构:列表、字典、集合,以及pandas的DataFrame操作(这是你当前代码的核心数据载体)
  • 学会阅读第三方库官方文档:比如docxtpl的官方文档里有专门的图片替换示例,遇到问题优先查阅官方说明
  • 多做实战练习:从简单的文件读写、数据处理开始,逐步过渡到模板生成这类场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:55:42