仅在 table 行而不是整个文档上设置字体颜色

Set font color on only one table row rather than entire document

import docx
from docx.api import Document
from docx.shared import RGBColor
    
if condition:
    paragraph = row[2].add_paragraph('Different Text') # Not Blue
else:
    blue_paragraph = row[2].add_paragraph('X')
    font = blue_paragraph.style.font
    font.color.rgb = RGBColor(0x42, 0x24, 0xE9)

以上代码不仅使我的整个 row[2] 变蓝,而且使整个文档变蓝。如何仅将 'X' 文本设置为蓝色?

这一行:

font = blue_paragraph.style.font

您正在选择可能是 Normal 样式的字体,然后在下一行中将其设置为蓝色。这解释了为什么整个文件变成蓝色; Normal 是文档中所有段落的默认样式。

您需要创建一个新的蓝色样式并将其应用于相关段落,或者直接设置目标文本的字体。

所以像这样的东西会起作用,但在某些方面不如使用样式优化:

blue_paragraph = row[2].add_paragraph("X")
for run in blue_paragraph.runs:
    run.font.color.rgb = RGBColor(0x42, 0x24, 0xE9)

python-docx 文档中的此页面以您可能会觉得有用的方式描述了 Word 样式。 https://python-docx.readthedocs.io/en/latest/user/styles-understanding.html