请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

Trick

中级会员

84

主题

258

帖子

712

积分

中级会员

积分
712
Trick
中级会员   /  发表于:2022-2-24 14:07  /   查看:3480  /  回复:14
使用addFormulaRule方法能否使用数组公式,可否添加多个规则
条件公式该怎么写,我现在有几种场景
(1)一个0~10的区间
(2)小于0,大于10的区间
(3)跟表格中的某些值比较,如第n行时,为An~Cn区间

14 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-2-24 16:25:29
沙发
你好,可以参考附件的demo,另外,像这种区间的条件格式,建议使用addCellValueRule

data.html

2.49 KB, 下载次数: 192

回复 使用道具 举报
Trick
中级会员   /  发表于:2022-2-24 17:16:54
板凳
Derrick.Jiao 发表于 2022-2-24 16:25
你好,可以参考附件的demo,另外,像这种区间的条件格式,建议使用addCellValueRule

addCellValueRule支持使用公式吗,像下面这样
activeSheet.conditionalFormats.addCellValueRule(GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators.between, A1, A10, style, ranges);
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-2-24 17:50:23
地板
Trick 发表于 2022-2-24 17:16
addCellValueRule支持使用公式吗,像下面这样
activeSheet.conditionalFormats.addCellValueRule(GC.Spr ...

如果想要传的是单元格位置,请参考下面以 "=Sheet1!$A$6"这样的方式使用
sheet.conditionalFormats.addCellValueRule(GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators.between, "=Sheet1!$A$6", "=Sheet1!$C$6", style2, ranges2);
回复 使用道具 举报
Trick
中级会员   /  发表于:2022-2-24 17:55:17
5#
Derrick.Jiao 发表于 2022-2-24 17:50
如果想要传的是单元格位置,请参考下面以 "=Sheet1!$A$6"这样的方式使用
sheet.conditionalFormats.add ...

可以支持数组公式的形式吗,因为每一行的位置都是不一样的
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-2-24 18:25:34
6#
Trick 发表于 2022-2-24 17:55
可以支持数组公式的形式吗,因为每一行的位置都是不一样的

数组公式的用途不是用在类似这样的场景。如果有不同位置,可以根据需求考虑拼接字符串传参进去,
例如r1、r2是字符的方式拼接
var r1 = "=Sheet1!$A$6"
var r2 = "=Sheet1!$C$6"
sheet.conditionalFormats.addCellValueRule(GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators.between,r1, r2, style2, ranges2);

另外,关于条件格式以及相关公式的用法也可以搜索看下excel是如何实现的,只不过我们使用接口实现了excel的UI操作,重要的是设计条件格式的思路可以搜索相关资料参考。
回复 使用道具 举报
Trick
中级会员   /  发表于:2022-2-25 09:56:33
7#
Derrick.Jiao 发表于 2022-2-24 18:25
数组公式的用途不是用在类似这样的场景。如果有不同位置,可以根据需求考虑拼接字符串传参进去,
例如r1 ...

了解,但是这样就不得不去遍历单元格获取位置了,你看看我这个需求,有没有好的方案可以实现
image.png730505370.png
现在两列数据,我希望当每一行的前一年销售额大于每一行的规划销售额的时候,那就给这个前一年销售额所在的单元格改变背景色,最终呈现出的结果大致如下图
image.png686365050.png
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-2-25 11:00:01
8#
Trick 发表于 2022-2-25 09:56
了解,但是这样就不得不去遍历单元格获取位置了,你看看我这个需求,有没有好的方案可以实现

现在两列 ...

这边根据上述需求整理了一个demo,可以参考
image.png280249938.png

data.html

1.93 KB, 下载次数: 216

回复 使用道具 举报
Trick
中级会员   /  发表于:2022-2-25 11:12:54
9#
Derrick.Jiao 发表于 2022-2-25 11:00
这边根据上述需求整理了一个demo,可以参考

我目前也是这样写的,只是没想到有意外收获,只需要写B1<A1,那么整列都会根据这个公式去获取到每行对应的值。
我再问一下那个单元格进度条的是不是只能使用addDataBarRule这个方法才能实现,
回复 使用道具 举报
Trick
中级会员   /  发表于:2022-2-25 11:16:16
10#
Derrick.Jiao 发表于 2022-2-25 11:00
这边根据上述需求整理了一个demo,可以参考

就是这个 image.png360101317.png
这个我也想像添加公式规则一样,第一列的每一行根据公式算出来一个值作为最大值来显示进度条
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部