Update Task03 python与word.md
This commit is contained in:
@@ -1,22 +1,23 @@
|
||||
# python自动化之word操作
|
||||
# Task 03 python与word
|
||||
|
||||
- [python自动化之word操作](#python自动化之word操作)
|
||||
- [1.课前准备](#1课前准备)
|
||||
- [2.知识要点](#2知识要点)
|
||||
- [2.1初步认识docx](#21初步认识docx)
|
||||
- [2.1.1新建空白word并插入文字](#211新建空白word并插入文字)
|
||||
- [2.2python自动化之word操作](#22python自动化之word操作)
|
||||
- [2.2.1整体页面结构介绍](#221整体页面结构介绍)
|
||||
- [2.2.2字体设置](#222字体设置)
|
||||
- [2.2.3插入图片与表格](#223插入图片与表格)
|
||||
- [2.2.4设置页眉页脚](#224设置页眉页脚)
|
||||
- [2.2.5代码延伸](#225代码延伸)
|
||||
- [3.项目实践](#3项目实践)
|
||||
- [3.1需求](#31需求)
|
||||
- [3.2需求分析](#32需求分析)
|
||||
- [3.3代码](#33代码)
|
||||
- [4.后记](#4后记)
|
||||
## 1.课前准备
|
||||
- [Task 03 python与word](#task-03-python与word)
|
||||
- [3.0 课前准备](#30-课前准备)
|
||||
- [3.1.知识要点](#31知识要点)
|
||||
- [3.1.初步认识docx](#31初步认识docx)
|
||||
- [3.1.1 整体页面结构介绍](#311-整体页面结构介绍)
|
||||
- [3.1.2字体设置](#312字体设置)
|
||||
- [3.1.3插入图片与表格](#313插入图片与表格)
|
||||
- [3.1.4设置页眉页脚](#314设置页眉页脚)
|
||||
- [3.1.5代码延伸](#315代码延伸)
|
||||
- [3.2项目实践](#32项目实践)
|
||||
- [3.2.1需求](#321需求)
|
||||
- [3.2.2需求分析](#322需求分析)
|
||||
- [3.2.3代码](#323代码)
|
||||
- [3.3后记](#33后记)
|
||||
|
||||
|
||||
|
||||
## 3.0 课前准备
|
||||
|
||||
> python 处理 Word 需要用到 python-docx 库,终端执行如下安装命令:
|
||||
|
||||
@@ -32,21 +33,22 @@ conda install python-docx
|
||||
|
||||
|
||||
|
||||
## 2.知识要点
|
||||
## 3.1.知识要点
|
||||
|
||||
项目难度:⭐
|
||||
|
||||
> 说明:
|
||||
>
|
||||
> 1. 通过小试牛刀初步认识docx,然后系统学习python对word的操作;
|
||||
> 2. 预估每个知识点需要讲解的时间;
|
||||
> 3. 研发逻辑就是讲解逻辑,一般从上往下,遵循:`What - Why - How` 或 `Why - What - How` 思路;
|
||||
|
||||
|
||||
|
||||
### 2.1初步认识docx
|
||||
### 3.1.初步认识docx
|
||||
|
||||
相信同学们都进行过word的操作。话不多说,直接上python对word简单操作的代码,先有个直观的感觉,然后再系统学习!
|
||||
|
||||
#### 2.1.1新建空白word并插入文字
|
||||
|
||||
```python
|
||||
# 导入库
|
||||
from docx import Document
|
||||
@@ -82,9 +84,7 @@ paragraph_3 = doc_1.add_paragraph('这是第二页第一段文字!')
|
||||
doc_1.save('doc_1.docx')
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 2.2python自动化之word操作
|
||||
---
|
||||
|
||||
上节只是小试牛刀一下,接下来我们系统地学习python自动化之word操作。
|
||||
|
||||
@@ -101,7 +101,7 @@ doc_1.save('doc_1.docx')
|
||||
|
||||
在**`python-docx`**中,**`run`**是最基本的单位,每个**`run`**对象内的文本样式都是一致的,也就是说,在从**`docx`**文件生成文档对象时,**`python-docx`**会根据样式的变化来将文本切分为一个个的`Run`对象。
|
||||
|
||||
#### 2.2.1整体页面结构介绍
|
||||
#### 3.1.1 整体页面结构介绍
|
||||
|
||||
我们以一个小案例为主线把文档,段落和文字块串一下:
|
||||
|
||||
@@ -152,9 +152,10 @@ r_1.font.color.rgb =RGBColor(255,0,0) #颜色
|
||||
# 保存文件(当前目录下)
|
||||
doc_1.save('周杰伦.docx')
|
||||
```
|
||||
|
||||
通过上例我们可以看到,最小的操作对象为文字块,通过run的指定进行操作。比如字号,颜色等;而再上一个层级--段落是的格式是通过paragraph_format进行设置;
|
||||
|
||||
#### 2.2.2字体设置
|
||||
#### 3.1.2字体设置
|
||||
|
||||
通过(1),同学们已经注意到,字体的设置是全局变量。如果我想在不同的部分进行不同字体的设置,那该怎么办呢?这就需要在应用前操作设置一下。
|
||||
|
||||
@@ -223,7 +224,7 @@ doc.save('字体设置2.docx')
|
||||
|
||||
我们很容易地看出来,字体设置1.py与字体设置2.py的区别在于是否为同一段落,同时字体设置2.py中自定义了一个函数。同学们可以在实际工作中看具体场景进行选择。
|
||||
|
||||
#### 2.2.3插入图片与表格
|
||||
#### 3.1.3插入图片与表格
|
||||
|
||||
```python
|
||||
#导入库
|
||||
@@ -253,7 +254,7 @@ doc_1.save('周杰伦为营口加油.docx')
|
||||
|
||||
```
|
||||
|
||||
#### 2.2.4设置页眉页脚
|
||||
#### 3.1.4设置页眉页脚
|
||||
|
||||
在python-docx包中则要使用节(section)中的页眉(header)和页脚(footer)对象来具体设置。
|
||||
|
||||
@@ -304,7 +305,7 @@ document.save('页眉页脚1.docx') # 保存文档
|
||||
|
||||

|
||||
|
||||
#### 2.2.5代码延伸
|
||||
#### 3.1.5代码延伸
|
||||
|
||||
```python
|
||||
'''对齐设置'''
|
||||
@@ -346,9 +347,11 @@ from docx.shared import RGBColor,Pt
|
||||
#underline :下划线
|
||||
```
|
||||
|
||||
## 3.项目实践
|
||||
## 3.2项目实践
|
||||
|
||||
### 3.1需求
|
||||
项目难度:⭐ ⭐ ⭐
|
||||
|
||||
### 3.2.1需求
|
||||
|
||||
> 你是公司的行政人员,对合作伙伴进行邀请,参加公司的会议;
|
||||
>
|
||||
@@ -364,14 +367,14 @@ from docx.shared import RGBColor,Pt
|
||||
|
||||
|
||||
|
||||
### 3.2需求分析
|
||||
### 3.2.2需求分析
|
||||
|
||||
> 逻辑相对简单:
|
||||
>
|
||||
> - 获取 Excel 文件中每一行的信息,提取 参数;结合获取的参数设计邀请函样式并输出
|
||||
> - 设计word段落及字体等样式。
|
||||
|
||||
### 3.3代码
|
||||
### 3.2.3代码
|
||||
|
||||
```python
|
||||
# 导入库
|
||||
@@ -454,7 +457,7 @@ for row in sheet.rows:
|
||||
n = n + 1
|
||||
```
|
||||
|
||||
### 4.后记
|
||||
### 3.3后记
|
||||
|
||||
> 本案例也可适用于批量生产固定格式的word,如工资条,通知单等,面对这种相似且重复的任务,python的自动化运行能大幅提升当前的工作效率。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user