超简单Python将指定数据插入到docx模板指定位置渲染并保存

超简单Python将指定数据插入到docx模板渲染并生成

最近有一个需求,制作劳动合同表,要从excel表格中将每个人的数据导入到docx劳动合同中,重复量很大,因此可以使用python高效解决。为了让模板内容不变动,这里使用了类似jinja2的渲染引擎,使用{{ }}插值表达式把数据插入进去。也可以使用{% %}循环,条件语法等。

docx模板如下(在需要插值的位置填充 {{}} 表达式):

首先安装docxtpl

$ pip install docxtpl

python代码如下:

from docxtpl import DocxTemplate
tpl = DocxTemplate('劳动合同.docx')
#这些字段从csv中获取
context = {
   "name": name,
   "department": department,
   "position": position,
   "time": time,
   "id": id_card,
   "addr": addr,
}
tpl.render(context)
tpl.save("{}的劳动合同.docx".format(name))

运行后就可以在docx中看到效果,{{ field }}这里已经被context里面的字段替换了,非常简单!

原文地址:https://www.cnblogs.com/PyKK2019/p/10527252.html

时间: 2024-10-19 15:40:57

超简单Python将指定数据插入到docx模板指定位置渲染并保存的相关文章

python 读取SQLServer数据插入到MongoDB数据库中

# -*- coding: utf-8 -*-import pyodbcimport osimport csvimport pymongofrom pymongo import ASCENDING, DESCENDINGfrom pymongo import MongoClientimport binascii '''连接mongoDB数据库'''client = MongoClient('10.20.4.79', 27017)#client = MongoClient('10.20.66.10

使用VBA将Excel指定单元格数据、字符串或者图表对象插入到Word模板指定书签处

准备工作: 1.首先需要提供一个word模板,并且标记好您要插入书签的位置,定义书签的命名.如图 2.模拟您要插入的Excel原始数据和图表对象 插入代码如下: Private Sub CommandButton1_Click() Dim App, WrdDoc, Mypath As String On Error Resume Next '定义原始模板的储存路径,默认和excel在同一路径 Mypath = ThisWorkbook.Path & "\模板.doc" '用Se

python读取csv数据(添加列名,指定分隔方式)

现有CSV/EXCEL文件一个,为简化期间,为一个3x3的数据文件,内容如下:1,2,32,1,33,2,1用pandas.read读取以后,第一行自动被识别为columns,造成数据出错   1 2 30 2 1 31 3 2 1有没有什么命令可以添加自定义的columns的名字,比如我想命名为 A, B, C三列,该怎么操作呢? pd.read_csv(file, header=None, names = ['a','b','c'] ) 原文地址:https://www.cnblogs.co

python 读取excel数据插入到另外一个excel

#-*-coding:utf-8-*- import xlrd import xlwt def excel_copy(dir_from, dir_to, sheet_name): '''从一个excel写入到另外一个excel''' wb = xlrd.open_workbook(dir_from) # 选择sheet页 sheet1 = wb.sheet_by_index(0) # 打印每个sheet页的行数 # print("sheet1行数:%d" % sheet1.nrows)

Oracle>>通过PL/SQL程序块判断,指定用户的指定数据表和序列是否存在,如果存在则删除,否则新创建。并且为表添加含有字符串数据,execute immediate执行insert语句中有字符串解决办法

--变量声明 declare num0 number; num1 number; begin --判断用户为:SYSTEM的数据库中是否存在相关数据表和序列,存在则删除,不存在则新创建,DBMS_OUTPUT.put_line等同java中的System.out.println输出语句 DBMS_OUTPUT.put_line('正在初始化数据库信息,请稍后......'); --以下参数说明: --所涉及到的参数值必须为大写 --sequence_owner:指定哪个数据库用户的序列: seq

GraphView-Demos超简单图表绘制

GraphView-Demos超简单图表绘制 绘制数据的曲线图和柱状图的类库,图标支持滑动和缩放.还可绘制实时动态变化的曲线图或者柱状图.  下载地址:http://www.devstore.cn/code/info/868.html  运行截图:     

分享一个简单的python+mysql网络数据抓取

最近学习python网络爬虫,所以自己写了一个简单的程序练练手(呵呵..).我使用的环境是python3.6和mysql8.0,抓取目标网站为百度热点(http://top.baidu.com/).我只抓取了实时热点内容,其他栏目应该类似.代码中有两个变量SECONDS_PER_CRAWL和CRAWL_PER_UPDATE_TO_DB,前者为抓取频率,后者为抓取多少次写一次数据库,可自由设置.我抓取的数据内容是热点信息,链接,关注人数和时间.其在内存中存放的结构为dict{tuple(热点信息,

Hibernate系列(一):简单的数据插入

第一步,我们需要写一个POJO类:User.java package cn.itcast.hibernate.domain; import java.util.Date; public class User { private int id; private String name; private Date birthday; public int getId() { return id; } public void setId(int id) { this.id = id; } public

使用python操作elasticsearch实现数据插入分析

前言: 例行公事,有些人可能不太了解elasticsearch,下面搜了一段,大家瞅一眼. Elasticsearch是一款分布式搜索引擎,支持在大数据环境中进行实时数据分析.它基于Apache Lucene文本搜索引擎,内部功能通过ReST API暴露给外部.除了通过HTTP直接访问Elasticsearch,还可以通过支持Java.JavaScript.Python及更多语言的客户端库来访问.它也支持集成Apache Hadoop环境.Elasticsearch在有些处理海量数据的公司中已经