利用python批量处理Word文件

您所在的位置:网站首页 excel表格改标题如何改格式 利用python批量处理Word文件

利用python批量处理Word文件

2023-09-11 18:37| 来源: 网络整理| 查看: 265

前面写了如何处理word中的表格:利用python批量处理Word文件——表格 ,其实我觉得word正文应该很少用到批处理,不过万一有朋友需要呢,我们要处理的文件内容千奇百怪,但我觉得难点其实是如何对我们想处理的内容进行读写,所以这篇博客的主要内容就是word文件的读写。我把word文件中的内容分为三类:一是表格;二是图片;三是其它内容。表格和图片的处理我在另外的博客中有详细说明,这里主要谈谈word正文的读写。

在docx中,Word内容的(除表格、图片)的基本组成是段落,因此word的所有内容都存储在paragraphs中,paragraph有两个属性:一是text,二是style。text存储段落的内容,style判断段落的种类。

1.读取Word内容 1.1读取Word中的表格

利用python-docx批量处理Word文件——表格

1.2读取Word中的图片

利用python-docx批量处理Word文件—图片

1.3读取Word正文 from docx import Document doc=Document("./a.docx") for p in doc.paragraphs: print(p.text)

通过遍历paragraphs就可以获得word中全部内容,有时候我们并不需要读取Word中的所有内容,我们可能只想要某些特殊的内容,比如标题,比如列表,那么docx可否实现呢,答案是肯定的。

1.3.1 读取Word中的标题 一级标题 for p in doc.paragraphs: if p.style.name=='Heading 1': print(p.text) 二级标题 for p in doc.paragraphs: if p.style.name=='Heading 2': print(p.text) 所有标题 import re for p in doc.paragraphs: if re.match("^Heading \d+$",p.style.name): print(p.text) 1.3.2 读取正文 for p in doc.paragraphs: if p.style.name=='Normal': print(p.text) 1.3.3 其它内容

从前面可以看出,如果知道不同内容的style.name,那么要读这些内容是极其方便的,这些style.name可以通过以下方式得到:

from docx.enum.style import WD_STYLE_TYPE for i in s: if i.type==WD_STYLE_TYPE.PARAGRAPH: print(i.name) 2.Word写入数据 2.1 标题

写入标题有两种方法

doc.add_heading("heading 1",level=1)

or

doc.add_paragraph("heading 1",style='Heading 1') 2.2 正文 doc.add_paragraph("正文") 2.3 分页符 doc.add_page_break() 2.5 其它

利用add_paragraph可以插入几何所有内容,只指定对应的style即可。

至于写入数据时的格式控制说起来就比较复杂了,我就不详述了,如果大家有需要,可以看下面文档:

最好的学习文档:官方API$用python-docx模块读写word文档使用Python写入docx文件并控制字体颜色python docx 中文字体设置

网上资料很多,大家有更多需求就自己去找吧,或着留言。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3