Как выделить конкретный текст c в ячейке на основе другого текста, используя Python? - PullRequest
0 голосов
/ 30 мая 2020

В моем файле Excel есть два столбца. В столбце A есть абзац, а в столбце B есть слова. Мое требование: какие слова в столбце B должны быть выделены в столбце A., как если бы вредители в столбце B. там в столбце Первая строка должна быть выделена. Обязательно должна быть выделена вторая строка. Я написал код, но он выделяет целые строки enter image description here

мой код:

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 обязательно должен быть выделен

1 Ответ

0 голосов
/ 30 мая 2020

В 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") превратит слово «вредитель» в красный цвет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...