乐于分享
好东西不私藏

自动化操作Word -- Word 文档样式调整

自动化操作Word -- Word 文档样式调整
Word 文档在我们的工作中也扮演了重要的角色,各种合同、通知、请示等基本都采用 Word 格式的。
对于单个 Word 文档,我们可以手动读取内容、写入内容以及调整样式。假如有成千上万个文档,就需要借助 Python 编程来实现自动化处理。

Word 文档样式调整

为了让大家写的 Word 文档更加美观,本节将介绍如何进行 Word 文档样式的调整,主要涉及字体样式、对齐样式、缩进样式、文字间距样式这 4 个部分的内容。

字体样式调整

在获取到文字块对象后,调用 font 属性会得到一个 Font 对象。该对象有 6 个常用属性,可用于字体样式设置,分别介绍如下。
run.font.name:字体类型设置。
run.font.color.rgb:字体颜色设置。
run.font.size:字号大小设置。
run.font.bold:是否加粗。
run.font.italic:是否加斜体。
run.font.underline:是否加下画线。由于涉及字号大小、字体类型和字体颜色,这里还需要用到另外 3 个方法,如下所示。
Pt():用于调整字号大小。
qn():用于调整字体类型。
RGBColor():用于调整字体颜色。
如图所示的 Word 文档,所有字体均是黑体。我们利用该文档来完成字体样式的设置。
在交互式环境中输入如下命令:
from docx import Documentfrom docx.oxml.ns import qnfrom docx.shared import Pt, RGBColordoc = Document("样式调整.docx")for paragraph in doc.paragraphs:    for run in paragraph.runs:        if "Heading 1" in paragraph.style.name:            run.font.size = Pt(22)            rPr = run._element.get_or_add_rPr()            rFonts = rPr.get_or_add_rFonts()            rFonts.set(qn("w:eastAsia"), "等线")            run.font.name = "Corbel"        elif "Heading 2" in paragraph.style.name:            run.font.size = Pt(16)            rPr = run._element.get_or_add_rPr()            rFonts = rPr.get_or_add_rFonts()            rFonts.set(qn("w:eastAsia"), "宋体")            run.font.name = "Times New Roman"        else:            run.font.color.rgb = RGBColor(2342272)            run.font.bold = True            run.font.italic = True            run.font.underline = Falsedoc.save("样式调整_字体样式.docx")
首先,导入需要使用的 qn()、Pt()、RGBColor() 方法(见 1、2)。
利用双层 for 循环,我们获取到了每个文字块对象,并在内部定义了一个 if...elif...else 条件语句结构。
如果某个段落是一级标题,我们将它的字号大小设置为 22 磅,中文字体设置为“等线”,英文字体设置为“Corbel”(见 3 ~ 8)。
如果某个段落是二级标题,我们将它的字号大小设置为 16 磅,中文字体设置为“宋体”,英文字体设置为“Times New Roman”(见 9 ~ 14)。
对于段落中的正文,我们将它的字体颜色设置为红色,并设置为加粗、斜体、下画线(见 15 ~ 19)。
最终效果如图所示。


系列完整内容可以在公众号主页搜索或点击分栏找到,欢迎扫码关注预防迷路找不到。感谢您的支持与相伴。