首页 > 其他分享 >WPS JS 宏根据单元格内容填充颜色

WPS JS 宏根据单元格内容填充颜色

时间:2024-01-30 15:55:34浏览次数:19  
标签:文字 0x000000 颜色 单元格 0xFFFFFF WPS 数组 JS 255

WPS JS 宏根据单元格内容填充颜色

直接上代码

/**
 * Macro1 Macro
 * 宏由 Steven 录制,时间: 2024/01/30
 */
function SetCellColorsBYMacro()
{
	// 获取表格的行数和列数
        var rowCount = 48;
        var colAll = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N'];
        
        // 填充颜色数组(BGR 格式)
		var fillColorsBgr = [
			0x0000FF, // 红色 (#FF0000)
			0xFF0000, // 蓝色 (#0000FF)
			0x008000, // 绿色 (#008000)
			0x00FFFF, // 黄色 (#FFFF00)
			0x00A5FF, // 橙色 (#FFA500)
			0x800080, // 紫色 (#800080)
			0xC0CBFF, // 粉红色 (#FFC0CB)
			0xFFFF00, // 青色 (#00FFFF)
			0x8B0000, // 深蓝色 (#00008B)
			0x008000, // 橄榄绿 (#808000)
			0x006400, // 深绿色 (#006400)
			0x2A2AA5, // 棕色 (#A52A2A)
			0xE6D8AD, // 淡蓝色 (#ADD8E6)
			0xEE82EE, // 紫罗兰色 (#EE82EE)
			0x00D7FF  // 金色 (#FFD700)
		];
		
		// 字体颜色数组(BGR 格式)
		var fontColorsBgr = [
		    0xFFFFFF, // 白色文字
		    0xFFFFFF, // 白色文字
		    0xFFFFFF, // 白色文字
		    0x000000,  // 黑色文字
		    0x000000,  // 黑色文字
		    0xFFFFFF,  // 白色文字
		    0x000000,  // 黑色文字
		    0x000000,  // 黑色文字
		    0xFFFFFF, // 白色文字
		    0xFFFFFF, // 白色文字
		    0xFFFFFF, // 白色文字
		    0xFFFFFF, // 白色文字
		    0x000000,  // 黑色文字
		    0x000000,  // 黑色文字
		    0x000000  // 黑色文字
		];

	    // 遍历列
		for (var col = 1; col < colAll.length; col++) {
		    // 遍历行
		    for (var row = 2; row < rowCount; row++) {		    	
		    	Range(colAll[col]+row).Select();
		        // 获取单元格内容
		        var cellValue = Selection.toString();		        
		
		        // 检查单元格是否有内容
		        if (cellValue !== null && cellValue !== "") {
		            // 设置填充颜色(蓝色)		           
		            Selection.Interior.Color = fillColorsBgr[col-1];
				
		            // 设置字体颜色(白色)
		            Selection.Font.Color = fontColorsBgr[col-1];
		        }
		    }
		}
}

效果图

过程

颜色搭配 GPT 搭配

User
能不能给我十五种颜色 可以在 excel 里面区分每列的参数以及对应16进制的颜色值;给单元格有文字的再给文字配一个颜色
ChatGPT
当然,以下是十五种颜色及其对应的十六进制表示,你可以在 Excel 中使用这些颜色来区分每列的参数。此外,如果单元格中有文字,还包含了文字的颜色。

红色:#FF0000; 文字颜色:#FFFFFF
蓝色:#0000FF; 文字颜色:#FFFFFF
绿色:#008000; 文字颜色:#FFFFFF
黄色:#FFFF00; 文字颜色:#000000
橙色:#FFA500; 文字颜色:#000000
紫色:#800080; 文字颜色:#FFFFFF
粉红色:#FFC0CB; 文字颜色:#000000
青色:#00FFFF; 文字颜色:#000000
深蓝色:#00008B; 文字颜色:#FFFFFF
橄榄绿色:#808000; 文字颜色:#FFFFFF
深绿色:#006400; 文字颜色:#FFFFFF
棕色:#A52A2A; 文字颜色:#FFFFFF
淡蓝色:#ADD8E6; 文字颜色:#000000
紫罗兰色:#EE82EE; 文字颜色:#000000
金色:#FFD700; 文字颜色:#000000
你可以在 Excel 中使用这些颜色来区分每列的参数,并根据需要设置文字的颜色。

生成 WPS JS宏 里面的 填充数组和字体颜色数组
ChatGPT
在 WPS Office JS 宏中,填充颜色和字体颜色通常使用 BGR 格式的数组。以下是十五种颜色对应的 BGR 格式数组,以及字体颜色的 BGR 格式数组:

javascript
Copy code
// 填充颜色数组
var fillColors = [
    [0, 0, 255],   // 红色
    [255, 0, 0],   // 蓝色
    [0, 128, 0],   // 绿色
    [0, 255, 255], // 黄色
    [165, 255, 0], // 橙色
    [128, 0, 128], // 紫色
    [203, 192, 255], // 粉红色
    [255, 255, 0], // 青色
    [139, 0, 0],   // 深蓝色
    [0, 128, 0],   // 橄榄绿色
    [100, 149, 237], // 深绿色
    [42, 42, 165],  // 棕色
    [230, 216, 173], // 淡蓝色
    [238, 130, 238], // 紫罗兰色
    [215, 255, 0]  // 金色
];

// 字体颜色数组
var fontColors = [
    [255, 255, 255], // 红色
    [255, 255, 255], // 蓝色
    [255, 255, 255], // 绿色
    [0, 0, 0],       // 黄色
    [0, 0, 0],       // 橙色
    [255, 255, 255], // 紫色
    [0, 0, 0],       // 粉红色
    [0, 0, 0],       // 青色
    [255, 255, 255], // 深蓝色
    [255, 255, 255], // 橄榄绿色
    [255, 255, 255], // 深绿色
    [255, 255, 255], // 棕色
    [0, 0, 0],       // 淡蓝色
    [0, 0, 0],       // 紫罗兰色
    [0, 0, 0]        // 金色
];

// 输出结果
console.log('填充颜色数组:', fillColors);
console.log('字体颜色数组:', fontColors);
这段代码定义了 fillColors 和 fontColors 两个数组,分别存储了十五种颜色的 BGR 格式数组。你可以根据需要使用这些数组在 WPS Office JS 宏中设置填充颜色和字体颜色。


颜色值格式 为 0x开头的
ChatGPT
理解了,如果你的 WPS Office JS 宏使用 0x 开头的十六进制颜色值,我们可以稍作修改:

javascript
Copy code
// 填充颜色数组
var fillColors = [
    0x0000FF,   // 红色
    0xFF0000,   // 蓝色
    0x008000,   // 绿色
    0xFFFF00,   // 黄色
    0xFFA500,   // 橙色
    0x800080,   // 紫色
    0xFFC0CB,   // 粉红色
    0x00FFFF,   // 青色
    0x00008B,   // 深蓝色
    0x808000,   // 橄榄绿色
    0x006400,   // 深绿色
    0xA52A2A,   // 棕色
    0xADD8E6,   // 淡蓝色
    0xEE82EE,   // 紫罗兰色
    0xFFD700    // 金色
];

// 字体颜色数组
var fontColors = [
    0xFFFFFF,   // 红色
    0xFFFFFF,   // 蓝色
    0xFFFFFF,   // 绿色
    0x000000,   // 黄色
    0x000000,   // 橙色
    0xFFFFFF,   // 紫色
    0x000000,   // 粉红色
    0x000000,   // 青色
    0xFFFFFF,   // 深蓝色
    0xFFFFFF,   // 橄榄绿色
    0xFFFFFF,   // 深绿色
    0xFFFFFF,   // 棕色
    0x000000,   // 淡蓝色
    0x000000,   // 紫罗兰色
    0x000000    // 金色
];

// 转换成 BGR 格式数组
fillColors = fillColors.map(color => {
    var blue = color & 0xFF;
    var green = (color >> 8) & 0xFF;
    var red = (color >> 16) & 0xFF;
    return [blue, green, red];
});

// 输出结果
console.log('填充颜色数组:', fillColors);
console.log('字体颜色数组:', fontColors);
这段代码中,fillColors 和 fontColors 数组使用 0x 开头的十六进制颜色值。在最后将这些值转换成 BGR 格式数组以适应 WPS Office JS 宏。

标签:文字,0x000000,颜色,单元格,0xFFFFFF,WPS,数组,JS,255
From: https://www.cnblogs.com/fhlsteven/p/17997287

相关文章

  • 无涯教程-ExpressJS - Cookies
    Cookie是简单的files/data,随服务器请求发送到客户端并存储在客户端,每次用户重新访问网站时,该cookie都会与请求一起发送。要将Cookie与Express一起使用,无涯教程需要cookie解析器中间件。要安装它,请使用以下代码-npminstall--savecookie-parser现在要在Express中使用cookie,需......
  • vue3+js使用canvas实现签字、重签
    <el-dialogtitle="签字板"v-model="visible"width="1000px"append-to-body><canvas@mousemove="canvasMove"@mouseup="canvasUp"ref="canvas"width="1000"height="5......
  • 【NodeJS】- 使用NVM安装npm失败后,手动安装npm
    安装NVM之后,我们通常会配置镜像,在setting文件中,添加镜像路径node_mirror:https://npm.taobao.org/mirrors/nodenpm_mirror:https://npm.taobao.org/mirrors/npm但是这两天镜像突然炸了,于是我删掉了镜像地址,使用官方直接下载。但是npm下载非常困难,而且高版本的npm还存在wo......
  • python之常用标准库-json/pickle/shelve
    json,用于各个平台语言的字符串和python数据类型间进行转换json的方法:dumps,loads,dump,loadpickle-用于python特有的类型(字符串,列表,字典,集合等)和python的数据类型间进行转换pickle的方法:dumps,loads,dump,load,但是都是以二进制存储shelve,是一个简单的k,v将内存数据通过......
  • 关于SortableJS在handle模式下移动端无法拖拽的解决办法
    原因个人项目使用到了这个库,PC操作好好的,移动端一看不行,然后去官方github-issues查看搜mobile的issue,发现大家也会这样。找了一圈看了下,应该是handle(句柄)模式下,库没有做事件监听导致的。解决办法要么换个库,要么在移动端的时候,取消句柄模式即可。constwrapper:HTMLElement=......
  • nodejs 组件引入
    constfs=require("fs");constnodePath=require("path");//import*asfsfrom"fs";constfolder="./";constcondition=["node_modules","compile"];letarr:string[]=[];main(folder,......
  • 无涯教程-ExpressJS - 模板(Templating)
    Pug是Express的模板引擎,Pug是一个非常强大的模板引擎,具有多种函数,包括filter,includes,inheritance,interpolation等。要将Pug与Express一起使用,无涯教程需要安装它。npminstall--savepug现在已经安装了Pug,将其设置为您的应用程序的模板引擎。将以下代码添加到您的index.js文......
  • 把git当作一个小型最终一致性的 json 数据库
    这几天写了一些有趣的代码:把git当作json数据库。做法是这样的:创建一个git仓库为每个最小粒度的数据创建一个独立的json文件({table}.json)客户端通过Python写git操作代码,实现几个数据库操作接口。数据库操作接口最小集:初始化:把git仓库拉下来(这个后面可以优化为只拉取指......
  • 无涯教程-ExpressJS - 中间件(Middleware)
    中间件(Middleware)函数是可以访问请求对象(requestobject),响应对象(responseobject)以及应用程序的请求(request)-响应(response)中的下一个中间件函数。这些函数用于修改req和res对象,以执行诸如解析请求正文(responstbodies),添加响应标头(responseheaders)等任务。这......
  • 无涯教程-ExpressJS - HTTP方法
    请求中提供了HTTP方法,该方法指定了客户端已请求的操作。下表列出了最常用的HTTP方法-S.No.Method&Remark1GETGET方法用于获取数据2POSTPOST方法用于提交数据3PUTPUT方法用于修改数据4DELETEDELETE方法用于删除数据GETMethodGET请求通过在请求的URL部......