当前位置: 技术文章>> python操作word之使用word内置样式操作

文章标题:python操作word之使用word内置样式操作
  • 文章分类: 后端
  • 11301 阅读

Word有一些内置样式,在Word里面显示为“预设样式”,我们可以直接拿来使用。内置样式非常多,但样式类型大致可以分为四种,分别是字符样式、列表样式、段落样式、表格样式,它们定义在WD_STYLE_TYPE这个枚举类里。我们这里先拿段落样式进行演示,代码如下:

from docx
import Documentdoc = Document()# 列表paragraph = doc.add_paragraph( "有序段落List")
print(paragraph.style.name)# 输出: Normalparagraph.style = "List"
doc.add_paragraph( "有序段落List 2", style = "List 2")
doc.add_paragraph( "有序段落List 3", style = "List 3")#
列表编号doc.add_paragraph( "有序段落List Number", style = "List Number")
doc.add_paragraph( "有序段落List Number 2", style = "List Number 2")
doc.add_paragraph( "有序段落List Number 3", style = "List Number 3")#
列表项目符号doc.add_paragraph( "无序段落List Bullet", style = "List Bullet")
doc.add_paragraph( "无序段落List Bullet 2", style = "List Bullet 2")
doc.add_paragraph( "无序段落List Bullet 3", style = "List Bullet 3")
doc.save("./word_ files/test.docx")

执行上面的代码之后得到的效果如图7-1所示。

Paragraph对象有一个style属性控制段落样式,我们只要把样式名赋值给该属性就可以引用样式。当然也可以在调用add_paragraph()方法新增段落的时候就引用样式,该方法的第二个参数就是样式名。如果不设置段落的样式,则默认样式名是“Normal”,也就是Word里的第一个内置样式“正文”。

还要注意样式名是一个字符串,这些内置的样式名都是固定的,所以不能写错了。既然样式名是固定的,那我们怎么查看都有哪些样式呢?我们干脆读取Document的styles取出全部样式,然后过滤出类型为段落的样式,代码如下:

from docx
import Documentfrom docx.enum.style
import WD_STYLE_TYPEdoc = Document() styles = doc.stylesparagraph_styles = [s
    for s in styles
    if s.type == WD_STYLE_TYPE.PARAGRAPH
]
for style in paragraph_styles: print(style.name)# 输出:# Normal# Header# Footer# Heading 1# Heading 2#...

代码中通过列表推导式拿到全部内置段落样式,一共有36个。每一个样式对应的类都是继承BaseStyle类的,BaseStyle对象的type属性用于区分样式类型,所以我们让type等于 WD_STYLE_TYPE.PARAGRAPH的样式保留下来,而name属性表示样式名,把它打印出来看一下,我们在引用样式的时候就直接写这些样式名就可以了。

关于WD_STYLE_TYPE,它是一个枚举类,这里一共定义了四种类型,分别是CHARACTER(字符)、LIST(列表)、PARAGRAPH(段落)和TABLE(表格),如果以后有需要的话可以按照这种方式进行过滤。


推荐文章