找回密码
 立即注册

QQ登录

只需一步,快速开始

balalala

注册会员

11

主题

46

帖子

125

积分

注册会员

积分
125
balalala
注册会员   /  发表于:2021-11-22 14:15  /   查看:3162  /  回复:18
遇到一个需求:判断单元格的值是否包含在数组中,若包含,则用现有样式,否则用特殊背景色标记。

目前是用EditEnded事件,判断这个值是否在数组中。但是有点弊端,单元格下方还有一个小弹框,显示单元格可能出现的值,所以当我点击小弹框里面的值,会有一瞬间底色变化,再恢复到正常背景色。


所以想知道单元格条件规则适用吗?或者有别的方案不?

image.png562886962.png

18 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-12-7 18:16:00
推荐
balalala 发表于 2021-12-7 18:09
是GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators自定义规则吗?他后面可选的方法都是比较 ...

可以参考这个帖子的一楼利用自定义公式去实现
https://gcdn.grapecity.com.cn/fo ... read&tid=137735
回复 使用道具 举报
湖南大商帮
初级会员   /  发表于:2021-12-7 17:29:51
推荐
既然条件格式支持自定义函数公式,那么,自己写一个自定义函数,来判断当前编辑单元格的值是否在某数组里,返回 true 或者false,然后条件格式就判断这个来控制颜色的显示

评分

参与人数 1金币 +500 收起 理由
Lynn.Dou + 500 很给力!

查看全部评分

回复 使用道具 举报
balalala
注册会员   /  发表于:2021-11-22 14:16:43
沙发
本帖最后由 balalala 于 2021-11-22 14:17 编辑

因为“测试是”不包含在下方小弹框的数据里面,所以背景色变成特殊颜色。
image.png222121276.png
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-11-22 16:14:11
板凳
balalala 发表于 2021-11-22 14:16
因为“测试是”不包含在下方小弹框的数据里面,所以背景色变成特殊颜色。

可以尝试使用条件格式实现,因为条件格式的规则是在结束编辑后才生效的。如果还处于编辑状态是不会生效的。 image.png780234985.png
回复 使用道具 举报
balalala
注册会员   /  发表于:2021-12-2 11:46:26
地板
条件格式看到的都是判断单元格的值是否在哪两个值中间,或者是等于某个值之类的。有什么条件格式的规则是能判断单元格的值是否在一个数组中,在则不变色,不在则变色。数组的length为几千。
回复 使用道具 举报
balalala
注册会员   /  发表于:2021-12-2 12:05:34
5#
Derrick.Jiao 发表于 2021-11-22 16:14
可以尝试使用条件格式实现,因为条件格式的规则是在结束编辑后才生效的。如果还处于编辑状态是不会生效的 ...

条件格式看到的都是判断单元格的值是否在哪两个值中间,或者是等于某个值之类的。有什么条件格式的规则是能判断单元格的值是否在一个数组中,在则不变色,不在则变色。数组的length为几千。
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-12-2 13:41:50
6#
balalala 发表于 2021-12-2 12:05
条件格式看到的都是判断单元格的值是否在哪两个值中间,或者是等于某个值之类的。有什么条件格式的规则是 ...

如果是length是几千就没有太好的办法了,建议你把用EditEnded事件实现的demo提供,我们这边调试一下是否可以进行优化。
回复 使用道具 举报
balalala
注册会员   /  发表于:2021-12-2 13:53:29
7#
Derrick.Jiao 发表于 2021-12-2 13:41
如果是length是几千就没有太好的办法了,建议你把用EditEnded事件实现的demo提供,我们这边调试一下是否 ...

EditEnded方法可能不太好使。。因为还会涉及delete删除单元格的值、从别的地方复制值、ctrl+z、ctrl+y等问题。
回复 使用道具 举报
balalala
注册会员   /  发表于:2021-12-2 13:56:19
8#
balalala 发表于 2021-12-2 13:53
EditEnded方法可能不太好使。。因为还会涉及delete删除单元格的值、从别的地方复制值、ctrl+z、ctrl+y等 ...

length少的话有什么解决方案呢?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-12-2 14:24:05
9#
balalala 发表于 2021-12-2 13:56
length少的话有什么解决方案呢?

例如下图这样利用公式实现。
image.png693434753.png
回复 使用道具 举报
balalala
注册会员   /  发表于:2021-12-2 19:28:27
10#
Derrick.Jiao 发表于 2021-12-2 14:24
例如下图这样利用公式实现。

好的 麻烦啦 感谢解答。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部