前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python自动化系列之使用python-docx操作word文档

python自动化系列之使用python-docx操作word文档

原创
作者头像
JQ实验室
发布2022-07-22 09:08:34
2.1K0
发布2022-07-22 09:08:34
举报
文章被收录于专栏:实用技术

日常办公中经常用到word程序,在python中同样有针对word的操作库python-docx;使得python可以自动化操作word文档;

pyhon-docx介绍

python-docx是一个利用python来读写word文件的第三方库。是一个用于创建和更新 Microsoft Word (.docx) 文件的库,提供全套的 Word 操作,是最常用的 Word 工具;

代码语言:txt
复制
python-docx库只支持docx文档,如果是doc,需要转换文件格式。
代码语言:txt
复制
文件格式转换可以使用win32com库的saveas方法进行自动化操作;

python-docx是一个开源库,开源代码库地址在这里:github地址

python-docx的简单使用

python-docx有配套的官方文档,可访问https://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 列表
代码语言:txt
复制
注意:颜色、字体、粗细、斜体不同,就是不同的文字块。
  • 使用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')
代码语言:txt
复制
完整代码示例
代码语言:python
代码运行次数:0
复制

def create():

代码语言:txt
复制
  '''创建一个word'''
代码语言:txt
复制
  doc = docx.Document() #新建一个空白文档
代码语言:txt
复制
  doc.add_heading('这个是标题,级别有level决定',level=2) #添加标题
代码语言:txt
复制
  p = doc.add_paragraph('这个是一个段,可长可短')
代码语言:txt
复制
  p.insert_paragraph_before('在第一段之前插入一个段落')
代码语言:txt
复制
  p.add_run('\n--这个是换行的节段,但是还是一个段落')
代码语言:txt
复制
  p.add_run('==粗体文字').bold = True #设置粗体
代码语言:txt
复制
  p.add_run('--斜体文字').italic = True #设置斜体
代码语言:txt
复制
  doc.add_page_break()       # 插入空白页 
代码语言:txt
复制
  np = doc.add_paragraph('新的段落')
代码语言:txt
复制
  from docx.enum.text import WD_BREAK
代码语言:txt
复制
  np.runs[-1].add_break(WD_BREAK.PAGE)  # 在段落的最后一个节段后添加分页
代码语言:txt
复制
  doc.save('H://pytest.docx') #保存
代码语言:txt
复制
  • 除了常规的文字,还可以添加表格等特殊格式;
    image.png
    image.png
  • 读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}")

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • pyhon-docx介绍
  • python-docx的简单使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档