在前面一期文章 使用Pandas、Jinja和WeasyPrint制作pdf报告 中我分享了如何使用HTML模板来创建pdf报告的方法。

虽然pdf很不错,但更多的人实际上在用微软的WORD来操作文档。实际上对于用户来说,创建所需的模板会更加简单,该模板支持Word中所需的所有自定义格式,而不是尝试使用HTML + CSS。 幸运的是,有一个库支持在python中进行MS Word 邮件合并。 这种方法的优点是可以在任何系统上运行 - 即使没有安装Word。

背景

使所有这一切成为可能的包叫做 docx-mailmerge。 它是一个成熟的包,可以解析MS Word docx文件,找到 合并字段 并将您需要的任何值填充给它们。 该包还支持一些辅助函数,用于填充表并生成具有多个分页符的单个文件。

我知道标准的Word方法是将此进程称为 mailmerge ,但本文中的这个 “mailmerge” 可以是一个有用的模板系统,可以用于更复杂的解决方案,而不仅仅是填充文档中的 名称和地址

安装

docx-mailmerge 需要依赖 lxml ,所以需要先安装lxml,再安装 docx-mailmerge

pip install lxml
pip install docx-mailmerge

WORD合并字段

为了使docx-mailmerge正常工作,您需要创建标准Word文档,并定义适当的 合并字段 。 以下示例适用于Word 2016.其他版本的Word应该类似。 实际上花了我一段时间来弄清楚这个过程,但是一旦你做了几次,这很简单。

启动Word并创建基本文档结构。 然后将光标放在应插入 数据的位置,并选择插入 - > 域

从“字段”对话框中,从“字段名称”列表中选择“MergeField”选项。 在“字段名称”中,输入字段所需的名称。 在这种情况下,我们使用的是商业名称。

单击确定后,您应该在Word文档中看到类似这样的内容:<< From >>。 您可以继续创建包含所有必填字段的文档。

简单的合并

创建Word文档后,填充字段值是一项很简单的操作。

from mailmerge 

我们的 PracticalPython.docx 文件可以看做是用来给大家群发新年祝福邮件模板。

下面我们先看看docx文档中有哪些合并字段

= MailMerge
{'From', 'date', 'FromUserName', 'To', 'ToUserName'}

我们发现 PracticalPython.docx 文档中有我们上图邮件模板中设计的几个 合并字段,如 From, date, FromUserName, To, ToUserName 。下面我们对这几个变量进行填充。

.merge

这是简单的Word文档填充效果

插入表格

生成模板时的另一个常见需求是有效地填充值表格中的值。 在我们的示例中,我们可以在包含客户购买历史的信件上附上展览。 在完成模板时,我们不知道要包含多少行,并且 每个字段 的填充将会非常快。 使用merge_rows可以使表格填充更容易。

在本部分构建模板,请创建一个包含1行的标准Word表,并将字段插入相应的列中。 无需特殊格式。 它应该看起来像这样:

现在我们定义了一连串的字典,用于填充到表格中去

= MailMerge

最终结果是每行填充了我们需要的值,并保留了我们在模板文档中定义的默认表格式:

精选文章

使用Pandas、Jinja和WeasyPrint制作pdf报告

pkuseg:领域细分的中文分词工具

用Python自动化生成倒计时图片

为什么你要为2020,而不是2019做计划?

如何让python代码显示进度信息?

我是如何通过python挣外快的

PySimpleGUI: 开发自己第一个软件

自然语言处理之LDA主题模型

100G 文本分析语料资源(免费下载)

长按下方二维码,后台回复“20190204”即可得到本项目代码。

python docx 合并文档 图片_使用Python制作WORD报告相关推荐

  1. python docx 合并文档 图片_使用python抓取大量简历文档内数据(word:docx;pdf;图片等)输出表格文件...

    1. 文章背景描述: 近期公司有员工离职了,技术岗位的. 让HR招人,招聘进度也太慢了,实在等不及,就撸起袖子自己上.(之前从来没招聘过) 自己在某招聘网站注册后,花了若干人民币,短时间收到大量求职者 ...

  2. python docx 合并文档 图片_不再为处理PDF烦恼,python处理操作PDF全攻略

    本篇聊下Python对pdf的各种操作,包含pdf转word,pdf转图片,pdf翻转,加密,加水印等. pdf转换word文档 保留格式 pdf转换为word文档,被大众经常使用的是纯Python库 ...

  3. python docx 合并文档 图片_Python+pymupdf处理PDF文档案例6则

    推荐图书:<Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),清华大学出版社,2020年6月第1次印刷,7月第2次印刷 京东购买链接:https://it ...

  4. python docx 合并文档 图片_Python检查Word文件中包含特定关键字的所有页码

    推荐教材:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社图书详情:配套资源:用书教师可以联系董老师获取教学大纲.课件.源码.教案.考试系 ...

  5. python docx 合并文档 图片_python玩转pdf全攻略

    本篇说点轻松的,聊下Python对pdf的各种操作,包含pdf转word,pdf转图片等. pdf转换word文档 保留格式 pdf转换为word文档,被大众经常使用的是纯Python库pdfmine ...

  6. python docx 合并文档 图片_Python和Word的交互批量生成报告

    前言: 本文是一位学弟的投稿,主要是用Python将格式不一致的信评简报Word文档快速生成标准格式的表格,涉及到两步,一是读取所有Word文件,二是处理里面的数据并输出到表格里,能大大提高工作的效率 ...

  7. python docx 合并文档 图片_Python合并word文档制作电子书

    需求: 将某大V公众号文章全部下载,整理成合集,并整理成电子书进行阅读. 以冯大辉老师公众号[小道消息]为例 实现步骤 一.批量下载公众号文章 使用 WeChatDownloadv20200423 工 ...

  8. python docx 合并文档 图片_MBT文档模型化生成工具——30倍效率文档撰写工程化方法...

    MBT(A model based document builder)文档模型化生成工具用户手册--30倍效率文档撰写工程化方法 1 简介 在软件工程领域,工程文档通常主要包括实施方案.需求分析.软件 ...

  9. GUI实战|Python做一个文档图片提取软件

    大家好,本文将进一步讲解如何用Python提取PDF与Word中图片,并结合之前讲解过的GUI框架PysimpleGUI,做一个多文件图片提取软件,效果如下: 本文主要将分为以下部分讲解: PDF.W ...

最新文章

  1. redis怎么不让存byte_redis用bitfield存储的问题
  2. Linux文本处理(二)
  3. Nature :全球表层土壤中微生物组的结构和功能
  4. 网络编程学习笔记(gethostbyname函数)
  5. mysql blob key length_mysql – 没有密钥长度的密钥规范中使用的BLOB / TEXT列’bestilling’...
  6. DOS特殊字符转义方法
  7. 阿里云——ECS——Linux服务器购买流程——超级细致
  8. React 与 Vue 框架的设计思路大 PK
  9. YbtOJ#20060-[NOIP2020模拟赛B组Day3]字串修改【模拟】
  10. 【小夕精选】YJango 7分钟带你领略你未曾想过的线性代数+微积分
  11. 116. 填充每个节点的下一个右侧节点指针
  12. python设计模式23-访问者模式
  13. SQL Server 漏洞评估工具
  14. jsf 导航_JSF导航规则示例教程
  15. 【MFC】多线程同步—事件
  16. 三菱plc控制步进电机实例_电工想做PLC工程师?那步进电机的编程控制指令你一定要了解...
  17. 【C语言 穷举法编程实例——韩信点兵问题(苏小红版C语言(第3版))】
  18. SpringCloud分布式架构演进
  19. matlab中signal pulses,MATLAB信号处理仿真-基带脉冲成形的数字滤波器
  20. (题解)《算法零基础100讲》(第38讲) 排序进阶 - 希尔排序

热门文章

  1. java+postgis实现根据两点生成模拟轨迹gps数据
  2. 银河证券:有色金属行业业绩坠落至低谷 推荐6股
  3. 利用maya+poser合成kinect 训练数据
  4. linux搭建git服务管理仓库
  5. 仅剩数据库mdf文件,恢复SqlServer2008正常数据库操作
  6. java反显是什么,卡西欧反显是什么意思
  7. 委托是什么?委托和委托双方的prop…
  8. 微波、光波炉加热原理
  9. VSAM file status
  10. 【VOLTE】ROHC 健壮性包头压缩