本次实验主要介绍Python针对Word办公自动化的需求产生背景及由来及其具体实现。包括但不限于:
- Word文档模型简介
- Python-docx库的介结、安装
- Python-docx库的初步使用方法
- Python操作Word实现办公自动化案例
- Windows操作系统
- Python
- PyCharm
- WordExcelPPT
完成本实验后,您将能够
- 了解Word文档模型
- 掌握如何在Windows系统下安装Python-docx库
- 掌握Python-docx库的基础使用方法
- 掌握如何给文档添加标题与段落
- 设置如何给文字设置字体样式(加粗、斜体、设置字体、颜色及大小等)
- 能够利用Python-docx库结合实际工作需求完成办公自动化操作任务
任务一、场景引入
【任务目标】
本次任务主要了解为什么需要用到针对Word的办公自动化操作,通过一个实际工作场景切入。
【任务步骤】
小张在一家黄金饰品公司工作,每天上午都需要给大约200个客户发送word版的今日黄金价格信息通知
每份通知文档只有日期,价格,客户名不一样
小张只得每天反复修改wrod文档,每次大概需要2个小时来完成这项重复的工作
如何能够非常高效的完成这件事情呢?
学完今天的内容后,由原来第天要花2个小时完成的事情,变成现在的一键搞定,效率提升了几百倍。
如何做到?
终于找到了 python-docx Python 库,文档齐全,功能强大,用来解决替换问题不在话下。
开始之前,先简单了解下 python-docx !
任务二、python-docx 介绍
【任务目标】
本次任务主要讲解了什么python-docx库,如何安装这个第三方库。同时也简单介结了一下Word文档模型。
【任务步骤】
python-docx 是用于创建可修改 微软 Word 的一个 python 库,提供全套的 Word 操作,是最常用的 Word 工具
2.1、概念
使用前,先了解几个概念:
- :是一个 Word 文档 对象,document 是独立的,打开不同的 Word 文档,就会有不同的 document 对象,相互之间没有影响
- :是段落,一个 Word 文档由多个段落组成,当在文档中输入一个回车键,就会成为新的段落,输入 shift + 回车,不会分段
- 表示一个节段,每个段落由多个 节段 组成,一个段落中具有相同样式的连续文本,组成一个节段,所以一个 段落 对象有个 Run 列表
例如有一个 Word,内容是: word 文档内容则 结构这样划分: 第二个 段落(paragraph),没有内容,所以 节段(run)为空
2.2、安装
可以用 pip 来安装:
出现如下图提示,说明安装成功:
2.3、小试牛刀
python-docx 安装后,测试一下:
- 引入 document 类
- 定义一个新文档对象 document
- 想文档中插入一个段落(paragraph)
- 最后调用文档对象 document 的 save 保存文档 执行成功后,在当前main.py所在目录,可以看到新产生的test.docx。用 Word 打开保存的 test.docx 就可以看到:Hello,Python ,具体操作如下图所示:
任务三、python-docx库的使用
【任务目标】
本次任务主要讲解了如何利用Python-docx库操作Word文档。
【任务步骤】
在上面小试牛刀中,介绍了插入段落(paragraph)的用法,下面在介绍一些 python-docx 的其他功能
为了简洁,下面例子中省略了 document 类的引入和实例化代码,doc为 document 的实例
3.1、添加标题
默认情况下添加的标题是最高一级的,即一级标题,通过参数 设定,范围是 1 ~ 9,也有 0 级别,表示的是段落标题:
3.2、文字样式
在前面 python-docx 文档结构图可以看到,段落中,不同样式的内容,被划分成多个 节段(Run),文字样式是通过 节段(Run)来设置的
3.2.1、设置加粗/斜体
3.2.2、设置字体
设置字体稍微复杂些,例如设置一段文字为 :
3.2.3、设置文字颜色及大小
3.2.4、全局样式设置
3.2.5、综合示例
可以动态的给一个文档添加段落、文本并给文本设置样式。
任务四、自动化案例-1:一键批量自动生成指定的格式的公文
【任务目标】
本次任务主要讲解了如何利用Python-docx库操作Word文档实现自动化的案例。
【任务步骤】
4.1、自动化需求
小张在一家黄金饰品公司工作,每天上午都需要给大约200个客户发送word版的今日黄金价格信息通知每份通知文档只有日期,价格,客户名不一样,小张只得每天反复修改wrod文档,每次大概需要2个小时来完成这项重复的工作。
客户通知的模板如下:
4.2、实现代码
NotifyWord.py
在项目上击右键,新建doc目录 , 执行代码,效果如下: 运行成功之后:
任务五、拓展训练:自动批量生成学员放假通知单
【任务目标】
本次任务是通过如下练习达到对上述知识技能点掌握的目的。
【任务步骤】
5.1、自动化需求
**自动化任务需求:**自动批量生成学员放假通知单,模板如下:
特别说明:
1)假设有10个学生(可以直接写在程序列表中)
2)假设有10个学生家长(家长的名称也可以直接写在程序列表中)
3)运行时提示
4)最下边落款的时间为当前系统时间
5.2、实现代码
打开Pycharm,进入默认界面,选择 ,如下图所示: 在弹出的窗口中选择 ,输入:StudentHolidy,创建StudentHolidy.py文件: 在其中输入代码如下: