You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用python-docx为生成的Word文档中的标题添加底纹?

可以实现,python-docx没有直接暴露设置段落底纹的顶层API,你可以通过操作文档底层XML元素的方式完成设置。
你调用document.add_heading()后会返回对应的Paragraph对象,对该对象执行底纹设置操作即可,具体代码如下:

首先导入依赖:

from docx import Document
from docx.oxml.ns import qn
from docx.oxml import OxmlElement

封装通用底纹设置函数:

def set_paragraph_shading(paragraph, fill_color: str = "E7E6E6"):
    # 获取/创建段落属性节点
    p_pr = paragraph._p.get_or_add_pPr()
    # 新建底纹属性节点
    shd_node = OxmlElement("w:shd")
    # 设置底纹填充色,参数为十六进制颜色码,不需要带#号
    shd_node.set(qn("w:fill"), fill_color)
    # 将底纹节点挂载到段落属性下
    p_pr.append(shd_node)

调用示例:

# 初始化文档
doc = Document()
# 添加一级标题,获取对应的段落对象
heading1 = doc.add_heading("测试一级标题", level=1)
# 为该标题设置底纹,可自定义传入颜色码匹配Word内置Shaded主题效果
set_paragraph_shading(heading1)
# 保存文档
doc.save("output.docx")

如果需要批量统一所有同级标题的底纹样式,不需要逐个设置,直接修改对应标题的内置样式即可:

# 直接修改Heading 1样式的底纹,后续所有新增的level=1的标题都会自动带底纹
heading1_style = doc.styles["Heading 1"]
set_paragraph_shading(heading1_style.paragraph_format._paragraph)

内容的提问来源于stack exchange,提问作者hbstha123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 11:15:04