python - 如何使用 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 列肯定应该突出显示
解决方案
在 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")
会将“害虫”一词变成红色。
推荐阅读
- sharepoint - 使用 Power Automate 在 Sharepoint 中安排文件的复制/移动和重命名
- python - SciPy.optimize.least_squares() 5PL 曲线优化问题
- sql - 无法连接到 (localdb)\MSSQLLocalDB - 由于触发器执行
- amazon-web-services - 基于分片的 AWS Kinesis 批处理
- android - 未解决的参考:frame_layout
- javascript - 多个轮播没有以正确的方式实施
- android - 如何在录制的 Android 视频中添加水印
- python - 非零二进制精度,但 Keras 分类器中的精度为 0
- r - 如何在 R 中使用 Plotly 制作“堆叠”甘特图
- python - 从 SQL load_extension 函数导入文件时遇到问题