python 填充Word文档模板 循环填充表格、图片 docxtpl、 jinja2

news/2025/2/12 16:17:31/

python 填充Word文档 循环填充表格、图片

  • code
  • word模板
  • input.txt 内容
  • 参考

code

from docxtpl import DocxTemplate, InlineImage
from docx.shared import Inches, Cm, Mm
import jinja2word_template = 'tpl.docx'
out_word_file = 'new_test.docx'
input_file = "input.txt"
image_dir = '/mnt/f/'
desc_string = f"""
desc_string 
"""tpl = DocxTemplate(word_template)with open(input_file) as f_in:data_list = [i.split('\t') for i in f_in.read().strip('\n').split('\n')]frameworks = []
for line_list in data_list[1:]:sample, sample_area, target_area, score = line_listimage_path_1 = f"{image_dir}/{sample}_5.0x.jpg"image_path_2 = f"{image_dir}/{sample}_20.0x.jpg"sample_image_dict = {'sample': sample,'sample_area' : sample_area,'target_area' : target_area,'score' : score,'image_1': InlineImage(tpl, image_path_1, width=Mm(76), height=Mm(40)),'image_2': InlineImage(tpl, image_path_2, width=Mm(76), height=Mm(40)),}frameworks.append(sample_image_dict)context = {'frameworks': frameworks
}jinja_env = jinja2.Environment(autoescape=True)
tpl.render(context, jinja_env)
tpl.save(out_word_file)
print(out_word_file)

word模板

会循环填充表格
在这里插入图片描述

复制出代码

{%tr for items in frameworks %}
{{ items.image_1 }} {{ items.image_2 }}
{{ items.sample }}
样本评分:{{ items.score }} 样本面积:{{ items.sample_area }} 目标面积:{{ items.target_area }}
{%tr endfor %}

input.txt 内容

名称 样本面积 目标面积 样本评分
A 10 5 0.5

参考

链接: https://github.com/elapouya/python-docx-template
https://zhuanlan.zhihu.com/p/146363527


http://www.ppmy.cn/news/44380.html

相关文章

React从入门到入土系列3-使用React构建你的应用

这是我自己系统整理的React系列博客,主要参考2023年3月开放的最新版本react官网内容,欢迎你阅读本系列内容,希望能有所收货。 本文是该系列的第3篇文章,阅读完本文后你将收获: 如何使用React逐步构建你的应用了解prop…

主流性能测试工具

目前市场上的性能测试工具较多,主流的性能测试工具有 LoadRunner、QALoad、SilkPerformer 和 Rational Performance Tester。这类都为负载性能测试工具,其原理都相同。 首先是录制脚本,通过录制脚本,性能测试工具通过协议来获取客…

万字详解 | Java 流式编程

概述 Stream API 是 Java 中引入的一种新的数据处理方法。它提供了一种高效且易于使用的方法来处理数据集合。Stream API 支持函数式编程,可以让我们以简洁、优雅的方式进行数据操作,还有使用 Stream 的两大原因: 在大多数情况下&#xff0…

leetcode501. 二叉搜索树中的众数

题目描述解题思路执行结果leetcode501. 二叉搜索树中的众数题目描述 给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。 如果树中有不止一个众数&a…

数字孪生(1)

目前接触的客户群体是做大屏展示,闲鱼上5元包邮的那种科技感前端(不好意思我买了)各路模型大整合 实景GISiOT,如果再来点动画就好,然满屏动起来,火灾烧起来,水面荡漾起来,工程车开起…

【产线事故】分享生产线事故发生的一次OOM

文章目录前言OutOfMemoryError出现的原因常见堆内存溢出的几种情况现象分析Mybatis源码分析情景复现总结前言 继上次线上CPU出现了报警,这次服务又开始整活了,风平浪静了没几天,看生产日志服务的运行的时候,频繁的出现OutOfMemor…

2023年环境工程与生物技术国际会议(CoEEB 2023)

会议简介 Brief Introduction 2023年环境工程与生物技术国际会议(CoEEB 2023) 会议时间:2023年5月19日-21日 召开地点:瑞典马尔默 大会官网:www.coeeb.org 2023年环境工程与生物技术国际会议(CoEEB 2023)将围绕“环境工程与生物技术”的最新研…

【MySQL速通篇001】pymysql简单操作mysql数据库的方法

前言 本篇博客主要讲的是一些基础的pymysql操作mysql数据库的方法,如果有不足之处,欢迎各位指正 🍀1、pymysql.connent 用法:创建链接 语法:conn pymysql.connect(host‘127.0.0.1’, port端口号, user‘数据库用户名…