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

