赞
踩
在网上搜索了不少方式,感觉问题被复杂化了,自己研究了下捣鼓出来一个相对简单的做法,记录分享下。
代码不重要,简单写一下:
- from docx import Document
-
- doc = Document("module.docx")
-
- doc._body.clear_content()
-
- doc.add_heading("段落1",level=1)
-
- doc.add_heading("段落2",level=2)
-
- doc.add_heading("段落3",level=1)
-
- doc.add_heading("段落4",level=2)
-
- doc.add_heading("段落5",level=2)
-
- doc.add_heading("段落6",level=3)
-
- doc.save("result.docx")
这个方法的重点在于打开时套用的模板module.docx,这个模板打开后,在代码中编辑的doc文档就会自动套用模板中设置好的样式(比如代码里的add_heading,套用的分别是标题123),而这些样式是可以在WPS或者Word里面手动修改的。
接下来是修改方式:
1.创建一个module.docx,打开。
2.右键点击工具栏里的样式,这里以标题123为例,因为python-docx里可以直接简单调用预设好名称的样式。点击修改样式。
3.在打开的样式修改窗口中找到编号界面。
4.注意选择编号的时候要选择相同的编号,否则编号无法层层链接。选好之后自定义。
5.点击高级按钮展开后,设置需要的级别,这里是第一个重点,要将级别链接到你选择的样式,这里以标题1为例。
6.然后是子级编号的设置,要额外设置一项,如下图。不设置的话,即使跨父节点了也不会重置编号。
7.其它要设置的样式都设置好,然后保存文档即可。运行代码效果如下图所示:
如果我没理解错的话,其实所有样式都可以通过类似的方式在Word或者WPS里设置好然后读取样式名称来调用。直接设置好模板中的样式然后套现成恐怕比在代码里设置各种类似于字体段落缩进之类的参数会方便很多吧。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。