代码之家  ›  专栏  ›  技术社区  ›  Mawg says reinstate Monica

python docx-如何编号标题?

  •  0
  • Mawg says reinstate Monica  · 技术社区  · 6 年前

    有一个很好的 example 对于python docx。

    我用了很多 document.add_heading('xxx', level=Y) 当我用ms-word打开生成的文档时,可以看到级别是正确的。

    我看不到的是编号,比如1,1.1,1.1.1等等,我只看到标题文本。

    如何使用docx显示标题编号?

    2 回复  |  直到 6 年前
        1
  •  3
  •   Scott Stanley    6 年前

    根据标题的轮廓样式和级别自动创建字母数字标题前缀。设置轮廓样式并插入正确的级别,您将获得编号。

    编号样式尚未实现。来自文档: _数字样式对象 类docx.styles.style.\u numberingstyle[源] 编号样式。尚未实施。

    但是,如果设置标题(例如,paragraph.style=document.styles['heading 1']),则它应默认为该标题的潜在编号样式。

        2
  •  0
  •   nancheal    6 年前

    这个答案对你很有帮助

    首先你需要像这样新建一个没有数字头的

    paragraph = document.add_paragraph()
    paragraph.style = document.styles['Heading 4']
    

    然后您将得到这样的xml单词

    <w:pPr>
    <w:pStyle w:val="4"/>
    </w:pPr>
    

    然后,您可以访问xml word“pstyle”属性并在代码下使用更改它

    header._p.pPr.pStyle.set(qn('w:val'), u'4FDD')
    

    最后,打开word文件你会得到你想要的!!!!