如何在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
相关产品推荐
相关产品推荐

