日常办公中经常用到word程序,在python中同样有针对word的操作库python-docx;使得python可以自动化操作word文档;
pyhon-docx介绍
python-docx是一个利用python来读写word文件的第三方库。是一个用于创建和更新 Microsoft Word (.docx) 文件的库,提供全套的 Word 操作,是最常用的 Word 工具;
python-docx库只支持docx文档,如果是doc,需要转换文件格式。
文件格式转换可以使用win32com库的saveas方法进行自动化操作;
python-docx是一个开源库,开源代码库地址在这里:github地址
python-docx的简单使用
- 安装python-docx
安装方式建议使用pip包管理器进行安装,相对来说比较方便;
> pip install python-docx
- 导入python-docx
在安装时使用的名字是python-docx,但是在导入时是另一个名字docx
> import docx
python-docx中的基本概念:
Document:是一个 Word 文档 对象,打开不同的 Word 文档,就会有不同的 Document 对象,相互之间没有影响
Paragraph:是段落,一个 Word 文档由多个段落组成,当在文档中输入一个回车键,就会成为新的段落,输入 shift + 回车,不会分段
Run 表示一个节段,每个段落由多个 节段 组成,一个段落中具有相同样式的连续文本,组成一个节段,所以一个 段落 对象有个 Run 列表
注意:颜色、字体、粗细、斜体不同,就是不同的文字块。
- 使用docx写word文档:
1、新建一个空白文档
doc = docx.Document()
2、添加标题
doc.add_heading('这个是标题,级别有level决定',level=2)
3、添加段落
p = doc.add_paragraph('这个是一个段,可长可短')
4、添加文字块:
p.add_run('\n--这个是换行的节段,但是还是一个段落')
5、保存文件
doc.save('H://pytest.docx')
完整代码示例
def create():
'''创建一个word'''
doc = docx.Document() #新建一个空白文档
doc.add_heading('这个是标题,级别有level决定',level=2) #添加标题
p = doc.add_paragraph('这个是一个段,可长可短')
p.insert_paragraph_before('在第一段之前插入一个段落')
p.add_run('\n--这个是换行的节段,但是还是一个段落')
p.add_run('==粗体文字').bold = True #设置粗体
p.add_run('--斜体文字').italic = True #设置斜体
doc.add_page_break() # 插入空白页
np = doc.add_paragraph('新的段落')
from docx.enum.text import WD_BREAK
np.runs[-1].add_break(WD_BREAK.PAGE) # 在段落的最后一个节段后添加分页
doc.save('H://pytest.docx') #保存
- 除了常规的文字,还可以添加表格等特殊格式;
- 读word文档:
读取文档比较简单,主要是加载文件,获取段落,获取表格等信息
示例代码如下:
def read():
'''读文档'''
doc = docx.Document('H://pytest.docx') # 打开当前路径下的已有文档
for paragraph in doc.paragraphs:
print(f'paragraph.text = {paragraph.text}')
for run in paragraph.runs:
print(f'\trun.text = {run.text}')
for table in doc.tables:
print(f"表格======{table}")
for i in range(len(table.rows)):
for j in range(len(table.columns)):
print (f"{i}行{j}列:数据:{table.cell(i,j).text}")