docxtpl模块的word模板替换内容
2023-09-14 09:00:36 时间
一、介绍
这个包使用两个主要的包:
用于读取、写入和创建子文档
用于管理插入到模板docx中的标记
python-docx模板已经创建,因为python-docx对于创建文档非常强大,但是对于修改文档却无能为力。
这个想法是开始创建一个你想要用microsoft word生成的文档的例子,它可以像你想要的那样复杂:图片,索引表,页脚,页眉,变量,任何你可以用word做的事情。然后,由于您仍然在使用microsoft word编辑文档,所以可以直接在文档中插入类似jinja2的标记。您将文档保存为.docx文件(xml格式):它将是您的.docx模板文件。
现在可以使用python-docx-template从.docx模板和关联的上下文变量中生成任意数量的word文档。
更多高级用法请查看文档,以下是简单示例
https://docxtpl.readthedocs.io/en/latest/#jinja2-like-syntax
二、代码
from docxtpl import DocxTemplate def temp_word(tmep_path,word_apth): tpl = DocxTemplate(tmep_path) # 需要替换内容以key:value的方式进行更换 context = { "name":"上海市XXXXXX公司", "num":"num0000001", "custom":"上海市XXXXXX公司", "year":"2020", "month":"1", "day":"2" } tpl.render(context) tpl.save(word_apth)
三、word模板
模板展示
第一步:
此时是红色的
第二步:
选中{{name}}后鼠标右击,选着接收插入
第三步:
运行程序
四、word转pdf
word转pdf还有个前提是安装一个官方插件,不然会报错
网盘:https://pan.baidu.com/s/1jGX48q5cZRmlDfsUN3Jh4g
密码:lt3n
from win32com.client import constants, gencache import win32ui dlg = win32ui.CreateFileDialog(1) # 1表示打开文件对话框 dlg.SetOFNInitialDir(r"C:\Users\admin\Desktop") # 设置打开文件对话框中的初始显示目录 dlg.DoModal() filename = dlg.GetPathName() # 获取选择的文件名称 def createPdf(wordPath, pdfPath): """ word转pdf :param wordPath: word文件路径 :param pdfPath: 生成pdf文件路径 """ word = gencache.EnsureDispatch('Word.Application') doc = word.Documents.Open(wordPath, ReadOnly=1) doc.ExportAsFixedFormat(pdfPath, constants.wdExportFormatPDF, Item=constants.wdExportDocumentWithMarkup, CreateBookmarks=constants.wdExportCreateHeadingBookmarks) word.Quit(constants.wdDoNotSaveChanges) if filename.split(".")[1] =="docx": p=filename.split(".")[0]+".pdf" createPdf(filename,p)
相关文章
- Apicloud_(模板)登陆注册功能模板
- vue-webpack快速建立项目模板
- node.js 使用ejs模板引擎时后缀换成.html
- vue框架-基础1-vue包引入,指令,模板语言
- WebStrom / IDEA 设置文件代码模板
- ML之分类预测:以六类机器学习算法(kNN、逻辑回归、SVM、决策树、随机森林、提升树、神经网络)对糖尿病数据集(8→1)实现二分类模型评估案例来理解和认知机器学习分类预测的模板流程
- zlib开发笔记(一):zlib库介绍、编译和工程模板
- vscode自定义vue模板代码
- 高精度模板
- 同向双指针模板——里面if j == n 和 sum >= s的细节要区分哪
- 前缀和模板
- ES索引模板——就是在新建索引时候指定的正则匹配来设置mapping而已,对于自动扩容有用
- 投稿经验[NO.4]SCI投稿之JEI录用(更新论文模板以及cover letter)
- Kubernetes Helm Chart模板语法:函数与管道