python课程报告模板_Python制作WORD报告
实际上对于用户来说,创建所需的模板会更加简单,该模板支持Word中所需的所有自定义格式,而不是尝试使用HTML + CSS。幸运的是,有一个库支持在python中进行MS Word 邮件合并。这种方法的优点是可以在任何系统上运行 - 即使没有安装Word。 背景使所有这一切成为可能的包叫做 docx-mailmerge。它是一个成熟的包,可以解析MS Word docx文件,找到 合并字段 并将您需要的任何值填充给它们。该包还支持一些辅助函数,用于填充表并生成具有多个分页符的单个文件。我知道标准的Word方法是将此进程称为 mailmerge ,但本文中的这个 “mailmerge” 可以是一个有用的模板系统,可以用于更复杂的解决方案,而不仅仅是填充文档中的 名称和地址。
安装
docx-mailmerge 需要依赖 lxml ,所以需要先安装lxml,再安装 docx-mailmerge
pip install lxmlpip
install docx-mailmerge
Word合并字段为了使docx-mailmerge正常工作,您需要创建标准Word文档,并定义适当的 合并字段 。以下示例适用于Word 2016.其他版本的Word应该类似。实际上花了我一段时间来弄清楚这个过程,但是一旦你做了几次,这很简单。启动Word并创建基本文档结构。然后将光标放在应插入 数据的位置,并选择插入 - >文档部件 - > 域
从“字段”对话框中,从“字段名称”列表中选择“MergeField”选项。在“字段名称”中,输入字段所需的名称。在这种情况下,我们使用的是商业名称。
单击确定后,您应该在Word文档中看到类似这样的内容:<< From >>。您可以继续创建包含所有必填字段的文档。
image
简单的合并
创建Word文档后,填充字段值是一项很简单的操作。
from mailmerge import MailMerge
import datetime
template = "PracticalPython.docx"
我们的 PracticalPython.docx 文件可以看做是用来给大家发祝福邮件模板。
下面我们先看看docx文档中有哪些合并字段
document = MailMerge(template)
print(document.get_merge_fields())
{'Date', 'FromUserName', 'From', 'To', 'ToUserName'}
我们发现 PracticalPython.docx 文档中有我们上图邮件模板中设计的几个 合并字段,如 From, date, FromUserName, To, ToUserName 。下面我们对这几个变量进行填充。
document.merge(
From='1008611@qq.com',
FromUserName='芈小米',
To = '1101011@qq.com',
ToUserName='关注者的昵称',
Date='{:%d-%b-%Y}'.format(datetime.date.today())
)
#输出的docx文件
document.write('output.docx')
这是简单的Word文档填充效果
插入表格生成模板时的另一个常见需求是有效地填充值表格中的值。在我们的示例中,我们可以在包含客户购买历史的信件上附上展览。在完成模板时,我们不知道要包含多少行,并且 每个字段 的填充将会非常快。使用merge_rows可以使表格填充更容易。在本部分构建模板,请创建一个包含1行的标准Word表,并将字段插入相应的列中。无需特殊格式。它应该看起来像这样:
现在我们定义了一连串的字典,用于填充到表格中去
document2 = MailMerge('purchasehistory.docx')
sales_history = [{
'prod_desc': 'Red Shoes',
'price': '$10.00',
'quantity': '2500',
'total_purchases': '$25,000.00'}, {
'prod_desc': 'Green Shirt',
'price': '$20.00',
'quantity': '10000',
'total_purchases': '$200,000.00'}, {
'prod_desc': 'Purple belt',
'price': '$5.00',
'quantity': '5000',
'total_purchases': '$25,000.00'}]
document2.merge_rows('prod_desc', sales_history)
document2.write('output-table.docx')
最终结果是每行填充了我们需要的值,并保留了我们在模板文档中定义的默认表格式:
python课程报告模板_Python制作WORD报告相关推荐
- 第四次c语言实验报告模板,C语言实验报告模板.doc
C语言实验报告模板.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档所得 ...
- 【收藏】Python利用Excel+模板批量生成word文件
Python利用Excel+模板批量生成word文件 最近帮朋友批量生成小区业主物业费未缴的律师函.朋友那有物业那边的表格数据,包括楼栋-房间号.业主姓名.欠费日期.欠款金额等信息.目的是需要将这些表 ...
- pythonword编辑报告模板_使用Python制作WORD报告
今天的另一篇文章 "使用Pandas.Jinja和WeasyPrint制作pdf报告" 中我分享了如何使用HTML模板来创建pdf报告的方法. 虽然pdf很不错,但更多的人实际上在 ...
- python docx 合并文档 图片_使用Python制作WORD报告
在前面一期文章 使用Pandas.Jinja和WeasyPrint制作pdf报告 中我分享了如何使用HTML模板来创建pdf报告的方法. 虽然pdf很不错,但更多的人实际上在用微软的WORD来操作文档 ...
- 【Python办公自动化】使用reportlab制作pdf报告
原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接.作者信息和本声明. Python使用folium制作地图并生成png图片 第一章 folium的方法和类的介绍(思维导图) 第二章 ...
- python将Excel数据自动生成Word报告【Pyhon-docx\openpyxl】
我写在了知乎,图片没有搬运过来.链接:https://zhuanlan.zhihu.com/p/371767402 需求:日常工作中,需要对Excel表格的数据进行筛选计算整理,然后将数据做成Word ...
- python自动化部署工具_Python + Allure(报告)+ Jenkins(持续集成)接口自动化测试环境搭建...
(这个是内部分享文档,侧重于测试报告的生成以及持续集成,至于接口框架的内部组织可以按照自己的想法来实现,有问题欢迎留言) 1.环境: • 操作系统:windows 64位 • 软件环境:python3 ...
- 计算机维修实训报告模板,[计算机维修实验报告模板.doc
[计算机维修实验报告模板 西南大学 实 验 报 告 课程名称:计算机维修技术 第一学期 年级: 专业班级 : 学生姓名 : 学号 指导教师 : 计算机与信息科学学院制 实验项目名称 实验时间2015 ...
- 简单可行性报告模板_项目可行性报告模板分享!第三章主要内容
项目可行性报告模板分享!第三章主要内容如下: 第三章 市场分析与建设规模 市场分析在可行性研究中的重要地位在于,任何一个项目,其生产规模的确定.技术的选择.投资估算甚至厂址的选择,都必须在市场需求情况 ...
- 第四次c语言实验报告模板,C语言实验报告模板完成版
C语言实验报告模板完成版 <高级语言程序设计> 学 生 实 验 报 告 专业:计算机科学与技术(非师范) 学号:12600120 姓名: 李奕 实验一 C程序的运行环境和使用方法 1. 实 ...
最新文章
- 用模板实现单例模式(线程安全)、模板方式实现动态创建对象
- Alchemy环境的搭建
- 2009中国海上大阅兵全视频
- mysql 8添加账号赋予权限
- 魅族用鸿蒙系统吗,魅族宣布接入鸿蒙是怎么回事?魅族手机可以刷鸿蒙系统吗?...
- [蓝桥杯2017初赛]Excel地址
- c语言c1变成e并输出,【图片】(原创)用纯C变了个变色输出字符的程序。。。【c语言吧】_百度贴吧...
- MVC Controller与ActionResult的返回值
- 计算一个时间,是否在规定的时期时间之间
- 苹果再因“降频门”遭遇集体诉讼,11.5万用户出拳
- 去中心化NFT交易生态系统Mochi.Market将在DAO Pad进行SHO
- 2021-2025年中国伊维菌素原料药行业市场供需与战略研究报告
- spring 定时任务---task
- java 临时文件 删除_Java临时文件何时被删除?
- RFM模型实现用户分层
- Android ScrollView滚动区高度和子LinearLayout的layout_marginTop的关系
- 老鱼Python数据分析——篇十三:“选股宝”数据下载代码优化
- cocos2dx 植物大战僵尸 5 塔基Terrain的更新
- 个人免签码支付源码+监控APP【野马资源网】
- 随笔---Beego中的routers包个人的理解
热门文章
- 7-1 宿舍谁最高? (20 分)
- L1-039 古风排版 (20 分)—团体程序设计天梯赛
- Android 自定义View(一)常用属性
- 七. 并发编程 (进程队列)
- ChengDu University Mental Health Test 需求分析文档
- Java50道经典习题-程序7 处理字符串
- C++ 构造函数中抛出异常
- [转载] Java并发编程:Callable、Future和FutureTask
- 从Java类库看设计模式(4)
- 通过napalm-huawei-vrp模块对华为交换机信息进行分析(ENSP模拟器)