当前位置:   article > 正文

关于python-docx无法获取word自动编号的一种解决方法_python读取word自动编号

python读取word自动编号

关于python-docx无法获取word自动编号的一种解决方法

使用python获取word自动编号的序号时,网上查了用python-docx来识别,其中尝试用正则等方法都无法获取到,看到通过读取word的xml文件结构来获取又比较复杂,后尝试使用了pywin32库来实现,效果如下:

部分代码:

import win32com.client as win32

def ghn(t_doc):
    word = win32.gencache.EnsureDispatch('Word.Application')
    doc = word.Documents.Open(t_doc)
    #word.Visible = True

    #查找标题为“一级标题”的位置
    search_range = doc.Content
    search_range.Find.Text = "一级标题"
    search_range.Find.Execute()
    start_range = search_range.End
    end_range = doc.Content.End

    #设置要遍历的大纲级别
    outline_levels = [1, 2, 3, 4]

    #遍历指定范围内的所有段落:从"一级标题"开始至文档结尾
    for paragraph in doc.Range(start_range, end_range).Paragraphs:
        #匹配该段落的大纲级别
        if paragraph.OutlineLevel in outline_levels:
            #获取该段落word自动编号的序号
            number = paragraph.Range.ListFormat.ListString
            print(number)

    doc.Close()
    word.Quit()

t_doc = r"C:\X\X\1.docx"
ghn(t_doc)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

未安装pywin32库需要提前安装一下。以上代码片段主要是实现在一个文档中找到某个关键字起始范围内的所有1-4级大纲标题前的序号并输出。

文档编号:

在这里插入图片描述

执行效果:

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/795963
推荐阅读
相关标签
  

闽ICP备14008679号