仅在 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
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