WPS JS 改变单元格内特定字符串的颜色

function ColorFormat() 
{
    var app = Application;
    //获取当前活动的工作簿(workbook)和工作表(worksheet)
    var workbook = app.ActiveWorkbook;
    var worksheet = workbook.ActiveSheet;
    
    var colorBlue = 0xc07000; // RGB(0, 112, 192) in WPS JS API
    var colorRed = 0x0000ff; // RGB(0, 112, 192) in WPS JS API
    /*
    正则表达式由正则表达式字面量和元字符组成。在这个例子中,正则表达式字面量是进展:,元字符包括( ) * \ .    
    ( ):这是正则表达式中的分组符号,将后面的正则表达式作为一个整体进行处理。
    *:这是正则表达式中的量词符号,表示前面的字符可以出现0次或多次。在这个例子中,*表示前面的(.*?)可以匹配0个或多个任意字符,直到遇到后面的\ .
    ?: 匹配前面一个表达式 0 次或者 1 次。
    .: (小数点)默认匹配除换行符之外的任何单个字符。
    \:这是转义符号,用来转义后面的字符。在这个例子中,\后面的.表示匹配任意字符(除了换行符)。
    \.:这是匹配实体的.字符。在正则表达式中,.是一个特殊字符,用来匹配任意字符(除了换行符),而\.则用来匹配.字符本身。
    */
    var regex1 = /进展:(.*?)\。/g;
    var regex2 = /delay原因:(.*?)\。/g;
    var regex3 = /任务类型:(.*?)\。/g;
    var regex4 = /风险及应对:(.*?)\。/g;
    var match1;
    
    // 获取当前选择的单元格范围
    var range = Selection;

    // 如果选择的范围不为空,则遍历每个单元格并修改颜色
    if (range.Cells.Count > 0) 
    {
        //进展
        for (var i = 1; i <= range.Cells.Count; i++) 
        {
            var cell = range.Cells(i);
            var content = cell.Value2;
            
            // 使用正则表达式查找第一个匹配项并更改颜色为蓝色
            //exec 方法是一个正则表达式对象的方法,它用于在给定的字符串中执行正则表达式匹配。它会返回一个匹配对象,其中包含了与正则表达式匹配的结果信息,如匹配的子串、匹配的起始位置和结束位置等。
            //进展:
            while ((match1 = regex1.exec(content)) !== null) 
            {
                cell.Characters(match1.index, match1[0].length + 1).Font.Color = colorBlue;
            }
            
            //delay原因:
            while ((match1 = regex2.exec(content)) !== null) 
            {
                cell.Characters(match1.index, match1[0].length + 1).Font.Color = colorRed;
            }
            
            //任务类型:
            while ((match1 = regex3.exec(content)) !== null) 
            {
                cell.Characters(match1.index, match1[0].length + 1).Font.Color = colorBlue;
            }
            
            //风险及应对:
            while ((match1 = regex4.exec(content)) !== null) 
            {
                if (match1[0].length > 8)
                    cell.Characters(match1.index, match1[0].length + 1).Font.Color = colorRed;
                else
                    cell.Characters(match1.index, match1[0].length + 1).Font.Color = colorBlue;
            }
        }
        MsgBox('牛X啊!!已经完成格式转换!!');
    } 
    else 
    {
        MsgBox ('请先选择要操作的单元格范围。');
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值