找回密码
 立即注册

QQ登录

只需一步,快速开始

5228

注册会员

5

主题

19

帖子

50

积分

注册会员

积分
50
最新发帖
5228
注册会员   /  发表于:2024-7-16 11:12  /   查看:1046  /  回复:13
100金币
已知单元格[v1]每行写入值为list格式 存储值为[1,2,3,1,5,6],

现在问题是给另外多个单元格插入颜色,以v1中的1-6为颜色枚举值,但是公式不识别list,该如何写这个判断条件

eg:
for(let i=0;i<6;i++){
sheet.conditionalFormats.adsFormulaRule(`VALUE$V1${i}=1`,style1,[new gc.spread.sheets.range(0,39+i,1)])
}

最佳答案

查看完整内容

您好,目前公式中可以通过SEARCH来判断当前单元格中的值是否包含于另一个单元格。 如果说要求每一个数字对应一个颜色的话,需要先判断SEARCH(A2,A1)返回的索引值是否存在,举一个简单的例子: A1单元格的值为[1,2],A2单元格的值为1,A3单元格的值为2,A4单元格的值为1: 分别使用SEARCH公式判断,SEARCH(A2,A1)会返回2,SEARCH(A3,A1)会返回4,也就是说不同元素返回的索引值不一样,那么就可以根据这个索引值来设置 ...

13 个回复

倒序浏览
最佳答案
最佳答案
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-16 11:12:42
来自 12#
您好,目前公式中可以通过SEARCH来判断当前单元格中的值是否包含于另一个单元格。

image.png108945616.png

如果说要求每一个数字对应一个颜色的话,需要先判断SEARCH(A2,A1)返回的索引值是否存在,举一个简单的例子:

A1单元格的值为[1,2],A2单元格的值为1,A3单元格的值为2,A4单元格的值为1:

分别使用SEARCH公式判断,SEARCH(A2,A1)会返回2,SEARCH(A3,A1)会返回4,也就是说不同元素返回的索引值不一样,那么就可以根据这个索引值来设置不同的样式了。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-16 17:36:29
2#
您好,没太理解您想表达的意思,是想实现什么样的效果呢?能否借助图片或Demo的方式辅助说明一下?
回复 使用道具 举报
5228
注册会员   /  发表于:2024-7-16 18:11:58
3#
就是我就是我v列单元格存的是数组,现在颜色公式里需要取数组里的一个值怎么能取到
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-17 09:35:08
4#
您好,还是没太明白您的意思,是想实现下图中的效果吗?

image.png207589110.png
回复 使用道具 举报
5228
注册会员   /  发表于:2024-7-17 11:14:06
5#
是的,要实现这个效果,但是你看我的条件是在v列的单元格(里面存储的值是一个list)数组通过循环arr[i]去把里面的1,2,3等其中一个元素拿出来与1比较是不是等于一,如果等于一就渲染这个颜色,
现在问题在于这个公式不识别这个list,用arr[下标]的方法没用,我用sheet.getValue方法打印确实是list结构
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-17 12:26:51
6#
您好,我大概明白您的意思了,是在V列中有多个单元格,其中有多个不同的值,现在想要针对这多个不同的单元格的值设置不同的样式,对吗?
回复 使用道具 举报
5228
注册会员   /  发表于:2024-7-17 13:36:33
7#
是的,v列单元格里存储的都是数组,样式判断都是同行v列单元格进行比较,就是v列数组怎么能提取出来其中一个下标的元素,你们的公式解析器好像不支持
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-17 17:32:05
8#
您好,试试以下代码使用单元格值来判断:

  1. for (let i = 0; i < 6; i++) {
  2.   let style = new GC.Spread.Sheets.Style();
  3.   switch (i) {
  4.     case 0:
  5.       style.backColor = "red";
  6.       break;
  7.     case 1:
  8.       style.backColor = "blue";
  9.       break;
  10.     case 2:
  11.       style.backColor = "yellow";
  12.       break;
  13.     case 3:
  14.       style.backColor = "pink";
  15.       break;
  16.     case 4:
  17.       style.backColor = "purple";
  18.       break;
  19.     case 5:
  20.       style.backColor = "gray";
  21.       break;
  22.     default:
  23.       break;
  24.   }
  25.   sheet.conditionalFormats.addCellValueRule(
  26.     GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators.equalsTo,
  27.     i + 1,
  28.     null,
  29.     style,
  30.     [new GC.Spread.Sheets.Range(0, 0, 6, 1)]
  31.   );
  32. }
复制代码
回复 使用道具 举报
5228
注册会员   /  发表于:2024-7-17 17:45:49
9#
我另一个单元格存的不是一个数字,是一个单元格存的一个list
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部