

有客户想给定一个字符串列表,然后对word文档包含以上字符串的给替换成红色,类似于:

仔细看了下目前自带的确实比较难实现,比如如何把光标定位至各个相同字符串的位置,如何选中等。
import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
import os
import win32com.client
def main(args):
pass
def rgb_to_color_value(rgb):
return rgb[0] + 256 * rgb[1] + 256 * 256 * rgb[2]
def highlight_target_text(file_path, words, rgb):
app = win32com.client.DispatchEx("Kwps.Application")
doc = app.Documents.Open(os.path.abspath(file_path))
color_value = rgb_to_color_value(rgb)
try:
for word in set(words):
while app.Selection.Find.Execute(word, False, False, False, False, False, True, 0, True, "", 0):
app.Selection.Font.Color = color_value
doc.Range(0, 0).Select()
doc.SaveAs2()
except Exception as e:
print("An error occurred:", e)
finally:
doc.Close()
app.Quit()替换前:

替换后:
