找回密码
 立即注册

QQ登录

只需一步,快速开始

5228

注册会员

5

主题

19

帖子

50

积分

注册会员

积分
50
最新发帖
5228
注册会员   /  发表于:2024-7-16 11:12  /   查看:1198  /  回复: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)])
}

13 个回复

正序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-19 09:36:29
14#
您好,[1,2,3,4,5]中的1在这个字符串中的下标索引值为2,字符2同理,下标索引值为4。这样您也就可以通过下标取到具体的值进行对比了。
回复 使用道具 举报
5228
注册会员   /  发表于:2024-7-18 18:04:43
13#
里面存了1和2,为什么返回2和4,你判断包不包含放在我的业务逻辑里是错的,我需要知道精确下标是多少拿出来做对比
回复 使用道具 举报
5228
注册会员   /  发表于:2024-7-18 10:08:38
11#
是这个数据结构,我需要根据循环一次取这个list里面的每个值与一个数字作比较,如果等于就渲染颜色
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-18 09:40:29
10#
您好,是说这样的一个数据结构吗?

image.png235837706.png

如果是的话,是想要实现什么样的一个效果?我没太明白您说的数组和各个单元格之间的逻辑。

如果不是的话,还请您提供一个您数据的截图辅助说明一下。
回复 使用道具 举报
5228
注册会员   /  发表于:2024-7-17 17:45:49
9#
我另一个单元格存的不是一个数字,是一个单元格存的一个list
回复 使用道具 举报
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 13:36:33
7#
是的,v列单元格里存储的都是数组,样式判断都是同行v列单元格进行比较,就是v列数组怎么能提取出来其中一个下标的元素,你们的公式解析器好像不支持
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-17 12:26:51
6#
您好,我大概明白您的意思了,是在V列中有多个单元格,其中有多个不同的值,现在想要针对这多个不同的单元格的值设置不同的样式,对吗?
回复 使用道具 举报
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 09:35:08
4#
您好,还是没太明白您的意思,是想实现下图中的效果吗?

image.png207589110.png
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部