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

如何在Python-docx中设置标题加粗?已尝试.bold=True但无效

Python-docx 标题加粗失效的解决办法

问题根源

直接给段落对象设置 .bold = True 不生效,核心原因是标题样式(如Heading 1)的格式优先级高于段落的直接格式设置,或者你错误地给整个段落而非段落内的run对象设置加粗。

可行解决方案

方案1:修改全局标题样式(批量生效)

如果需要所有同级别标题都加粗,直接修改对应样式的字体属性更高效:

from docx import Document

doc = Document()
# 获取Heading 1样式并设置加粗
heading_style = doc.styles['Heading 1']
heading_style.font.bold = True

# 添加应用该样式的标题
doc.add_heading('加粗的一级标题', level=1)
doc.save('output.docx')

方案2:给单个标题的run对象设置加粗(单独生效)

若仅需给特定标题加粗,无需修改全局样式,直接操作段落内的run:

from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH

doc = Document()
# 添加标题并获取段落对象
heading = doc.add_heading('居中且加粗的标题', level=1)
# 设置居中对齐
heading.alignment = WD_ALIGN_PARAGRAPH.CENTER
# 遍历段落内所有run,设置加粗
for run in heading.runs:
    run.bold = True

doc.save('output.docx')

方案3:手动构建带格式的标题

也可以直接创建空标题段落,再添加带加粗格式的文本run:

from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH

doc = Document()
# 创建空的一级标题段落
heading = doc.add_heading(level=1)
# 设置居中
heading.alignment = WD_ALIGN_PARAGRAPH.CENTER
# 添加加粗的文本run
bold_run = heading.add_run('自定义加粗标题')
bold_run.bold = True

doc.save('output.docx')

关键提示

Python-docx 中,段落的直接格式设置会被其应用的样式覆盖,因此必须针对run对象或样式本身设置加粗,而非直接给段落对象赋值.bold = True。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 14:25:19