代码之家  ›  专栏  ›  技术社区  ›  LearningC

如何在msword(word对象模型)中读取多级列表编号?

  •  0
  • LearningC  · 技术社区  · 11 年前

    我想阅读word中的多级列表格式。
    例如,如果列表为

        1.abc
        2.def
          a.ghi
          b.jkl
    

    对于ghi的范围对象,
    我想将列表编号字符串作为,

      2.a. ghi 
    

    我知道了 列表格式.ListLevelNumber 给出了列表级别。
    但没有获取任何属性来获取此表单中的列表编号。
    有财产吗?
    或者,有什么办法可以解决这个问题吗?
    或者,有什么概念可以帮助我吗?
    我在msdn中浏览了一些主题,我觉得这些主题可能会有所帮助。
    我有测距对象。

    1 回复  |  直到 9 年前
        1
  •  0
  •   LearningC    11 年前

    我得到了一个解决方案,将范围划分为段落,然后使用listLevelnumber向后迭代,直到我到达少1个listLevelnumber的段落,代表更高级别列表中的最后一个列表。在这里,我访问了ListString。重复它,直到我达到顶级列表。 python中的代码是,

     text=Range.ListFormat.ListString+str(Range.text)
     level=Range.ListFormat.ListLevelNumber
     lstr=""
     if level > 1:
         p=Range.Paragraphs.First
     while level >1 :
         while p.Range.ListFormat.ListLevelNumber == level :
             p=p.Previous(1)
         lstr=p.Range.ListFormat.ListString+lstr
         level=level-1
     if lstr:
         text=lstr+text
    

    lstr包含我想要添加的列表前缀,以获得表示完整嵌套形式的字符串。我得到的这个解决方案是基于所有列表项都是不同的段落这一事实。