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

如何用xlswriter模块实现Excel行多关键词匹配的条件格式高亮

实现Excel行同时包含两个关键词时高亮(基于XlsxWriter)

要实现仅当行内同时包含red和yellow两个关键词时高亮整行,我们可以利用XlsxWriter的公式型条件格式,通过Excel内置函数组合实现多条件判断。修改后的完整代码如下:

import xlsxwriter

workbook = xlsxwriter.Workbook('conditional_format.xlsx')
worksheet1 = workbook.add_worksheet()

# 关键词
keyword1 = 'red'
keyword2 = 'yellow'

# 高亮格式:浅红填充+深红文字
red_colour = workbook.add_format({'bg_color': '#FFC7CE',
                               'font_color': '#9C0006'})

data = [
    ['grape', 'Smooth skin either green, red or black in colour'],
    ['banana', 'peelable yellow skin'],
    ['apple', 'red or green skin fruit'],
    ['melon', 'refreshing yellow or red flesh fruit'],
]

# 写入数据
for row, row_data in enumerate(data):
    worksheet1.write_row(row, 0, row_data)

# 自定义公式条件:整行同时包含两个关键词才高亮
worksheet1.conditional_format('A1:B4', {
    'type': 'formula',
    'criteria': f'=AND(ISNUMBER(SEARCH("{keyword1}", $A1&$B1)), ISNUMBER(SEARCH("{keyword2}", $A1&$B1)))',
    'format': red_colour
})

workbook.close()

关键逻辑说明

  • 公式型条件格式:通过type: 'formula'让XlsxWriter支持自定义Excel公式判断,这是实现多条件组合的核心
  • AND()函数:确保两个关键词存在的条件同时成立
  • SEARCH()函数:在拼接后的行内容($A1&$B1)中查找关键词,不区分大小写(若需严格区分大小写,可替换为FIND())
  • 相对引用:$A1中的$固定列,行号随条件格式的行自动变化,保证每一行都被正确检查

修改后仅第4行(melon所在行)会被高亮,符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:25:20