替换word文档字体颜色
评论
收藏

替换word文档字体颜色

经验分享
克林
2024-05-14 14:56·浏览量:633
克林
发布于 2024-05-14 14:56633浏览

作者:克林

背景:

有客户想给定一个字符串列表,然后对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()

指令封装:

看之前封装示例教程: https://www.yingdao.com/community/detaildiscuss?id=681f132d-69f7-4a3e-b4be-27c8ea3ab634&tag=&from=userCenter&sort=createTime&page=1

实现效果:

替换前:

替换后:

收藏1
全部评论1
最新
发布评论
评论