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

如何用Python-docx为Word段落中特定二进制子串设置深红色字体?

解决Python生成Word时高亮单引号内二进制子串的问题

我之前也处理过类似的需求,用python-docx库就能完美实现!核心思路是不要直接给整个段落设置格式,而是把文本拆分成普通内容和需要高亮的二进制子串,分别作为独立的Run对象添加到段落中,给目标Run单独设置深红色字体即可。

步骤1:安装依赖

首先确保你安装了python-docx:

pip install python-docx

步骤2:编写格式化代码

下面是完整的可运行示例,包含从文本拆分到格式设置的全部逻辑:

import re
from docx import Document
from docx.shared import RGBColor

def add_highlighted_paragraph(doc, raw_text):
    # 创建一个空段落
    para = doc.add_paragraph()
    # 正则匹配单引号包裹的二进制子串(仅0和1组成)
    binary_pattern = re.compile(r"'[01]+'")
    last_index = 0

    # 遍历所有匹配到的子串
    for match in binary_pattern.finditer(raw_text):
        # 添加匹配前的普通文本(默认格式)
        if last_index < match.start():
            para.add_run(raw_text[last_index:match.start()])
        # 添加高亮的二进制子串,设置深红色
        highlight_run = para.add_run(match.group())
        highlight_run.font.color.rgb = RGBColor(0x8B, 0x00, 0x00)  # 标准深红色,可按需调整
        # 更新最后处理的位置
        last_index = match.end()

    # 添加文本末尾剩余的普通内容
    if last_index < len(raw_text):
        para.add_run(raw_text[last_index:])

# 测试:模拟从Excel读取的内容
if __name__ == "__main__":
    doc = Document()
    excel_extracted_text = "设备状态说明:'001'表示正常运行,'101'表示故障预警,'000'表示停机维护"
    add_highlighted_paragraph(doc, excel_extracted_text)
    # 保存文档
    doc.save("设备状态文档.docx")

关键细节说明

  • 正则表达式:r"'[01]+'"专门匹配单引号包裹的纯二进制字符串(仅0和1),如果你的场景中存在中文单引号,可以修改为r"['’][01]+['’]"来兼容。
  • Run对象:python-docx中每个段落由多个Run组成,每个Run可以独立设置字体颜色、大小等格式,这是实现局部高亮的核心。
  • 颜色选择:示例中用的0x8B0000是比较柔和的深红色,如果你需要更鲜艳的红色,可以换成RGBColor(0xFF, 0x00, 0x00)(纯红色)。

整合Excel读取逻辑

如果你已经用openpyxl或pandas读取了Excel内容,只需要把每个单元格的文本传入add_highlighted_paragraph函数即可,比如:

# 示例:用openpyxl读取Excel单元格文本
from openpyxl import load_workbook

wb = load_workbook("数据表格.xlsx")
ws = wb.active
doc = Document()

for row in ws.iter_rows(values_only=True):
    for cell_text in row:
        if cell_text:  # 跳过空单元格
            add_highlighted_paragraph(doc, str(cell_text))

doc.save("生成的文档.docx")

这样处理后,所有单引号内的二进制子串都会自动变成深红色,完全符合你的需求!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:14:28