携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
日常办公中经常用到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有配套的官方文档,可访问python-docx.readthedocs.io/en/latest/查…
-
安装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}")