首页 > 解决方案 > 如何使用 Python 突出显示基于其他文本的单元格中的特定文本?

问题描述

在我的excel文件中有两列。A列有段落,B列有单词。我的要求是B列中存在的单词应该在A列中突出显示。就像B列中有害虫一样。列中有多少害虫应该突出显示第一行。当然在第二行中肯定应该突出显示。我已经编写了代码,但它突出显示了整行在此处输入图像描述

我的代码:

from openpyxl import Workbook
from openpyxl import load_workbook
from openpyxl.styles import PatternFill
from openpyxl.styles import colors
from openpyxl.styles import Font, Color
import pandas as pd
ft = Font(color=colors.GREEN, bold=True)
wb = load_workbook('sample_sentence.xlsx')
ws = wb.active
a1 = ws['A']
for a in a1:
    a2 = a
for cell1 in ws['A']:
   for cell in ws['B']:
      if cell.value.lower() in cell1.value.lower():
         a2.font = ft
         wb.save('sample_sentence.xlsx')

我的要求是在第一个 A1 列害虫应该突出显示第二个 A2 列肯定应该突出显示

标签: pythonexcelconditional-statements

解决方案


在 VBA 中,这可以解决为:

Function Highlight(r As Range, t As String) As String
    Dim Search As Range
    Dim SearchIn As String
    Dim Position As Integer
    Dim Color As Long
    Color = RGB(255, 0, 0)

    SearchIn = r.Text
    Position = InStr(1, SearchIn, t, vbTextCompare)
    r.Characters(Start:=Position, Length:=Len(t)).Font.Color = Color

    Highlight = t
End Function

在您的通话中使用:=Highlight(A1,"pest") 会将“害虫”一词变成红色。


推荐阅读