日常需要经常处理Word文档,发现了一个新的Python包:Python-docx,处理docx十分方便。
而且这个包和pandas包结合使用,可以在word插入excel表格,节省了很多复制、粘贴、调整表格样式的时间,真的很方便!
但是要注意:Python-docx只能处理docx、docx、docx文件!
下面给大家介绍一下如何使用Python-docx吧,抛砖引玉~
0. 学习思路
一、 基础!安装Python-docx,并对照”官方帮助说明“了解包的对象和基本函数;这里建议在python交互模式下进行,可以直观的看到返回值和报错。
二、 出题!自己定义一个问题并解决,来加深对包的理解。题目:”创建一个docx文件,要求输入2个表格,并且这个表格有填充的数字,表格前有相应标题。“
三、 进阶!试试包的更多函数,看会触发什么效果。结合pandas,学习表格和字体、字号、颜色的处理
一、 基础
1.1 使用conda安装python-docx:
conda install -c conda-forge python-docx
没有了解过conda的同学,可以看看 Anaconda国内镜像停止后,怎么办?(已恢复),文中有简单介绍。
1.2 简要了解Python-docx:
1 打开/读取文档
第一步当然是创建文档并打开啦~
from docx import Document
import os
path = "a.docx"
os.system("touch %s" %path) # 调用shell命令创建a.docx文件
documentNew = Document() # 不指定路径是创建文件
documnet = Document(path) # 指定路径是读取文件
w(゚Д゚)w 发现报错 PackageNotFoundError :
docx.opc.exceptions.PackageNotFoundError: Package not found ...
原来是因为a.docx中没有任何内容。打开a.docx之后输入几个字符,再重试以上代码,就不会报错了。
2 插入标题
使用 add_heading() 或add_paragraph()添加标题:
document.add_heading('Document Title', 0)
# 方法1
document.add_heading('Heading 1', level=1) # 用level设置,level为0-5,对应不同级别的标题
# 方法2
document.add_paragraph('Heading 1', style="Heading 1") # 用style来设置不同级别的标题
3. 插入段落
段落是word文档中最基本的对象之一。插入段落主要使用的函数是:add_paragraph() #添加段落
add_run() #追加文字
#插入段落, 同时设置粗体和斜体~
p = document.add_paragraph('A plain paragraph having some ')
p.add_run('bold').bold = True #粗体
p.add_run(' and some ')