找回密码
 立即注册

QQ登录

只需一步,快速开始

Margin

注册会员

6

主题

19

帖子

158

积分

注册会员

积分
158
Margin
注册会员   /  发表于:2019-7-31 11:24  /   查看:3283  /  回复:5
条件格式化、设置公式、背景色什么的都是根据单元格内的数据来进行判断的,能不能根据非单元格上显示的数据进行判断?
比如说一个数组有一条数据是这样的{ name: 'name123', age: 25, times: 10, isMember: 0 }.
我想实现一个这样的功能,sheet只有name和age两个列,当times字段的值大于5的时候,此行数据的name单元格背景色变为红色,,isMember为0的时候,整行背景色变为红色。
现在的ConditionalFormatting需要的是单元格内的数据,能不能根据这一条数据的其他字段来设置?

5 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-7-31 19:23:34
沙发
您好,条件格式的公式可以引用其他单元格的值,请参考学习指南的例子:

https://demo.grapecity.com.cn/Sp ... os/conditionalRules
回复 使用道具 举报
Margin
注册会员   /  发表于:2019-8-1 15:49:49
板凳
KevinChen 发表于 2019-7-31 19:23
您好,条件格式的公式可以引用其他单元格的值,请参考学习指南的例子:

https://demo.grapecity.com.cn/ ...

不是,是不想引用任何单元格内的值,控制格式的数据根本就不会在表格上显示出来。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-1 18:09:54
地板
这个是可以的,其实条件格式支持公式,公式可以直接拼接变量,参考下列代码:

  1. var spread = GC.Spread.Sheets.findControl("ss");
  2. var activeSheet = spread.getActiveSheet();

  3. var style = new GC.Spread.Sheets.Style();
  4. style.backColor = "red";
  5. var ranges = [new GC.Spread.Sheets.Range(0, 0, 2, 1)];

  6. var condition1 = 50;
  7. var condition2 = 60;

  8. activeSheet.conditionalFormats.addFormulaRule("="+condition1+"<"+condition2, style, ranges);
  9. activeSheet.setValue(0, 0, 2,3);
  10. activeSheet.setValue(0, 1, 1,3);
  11. activeSheet.setValue(0, 2,1,3);
  12. activeSheet.setValue(1, 0, 1,3);
复制代码
回复 使用道具 举报
Margin
注册会员   /  发表于:2019-8-9 15:32:16
5#
KevinChen 发表于 2019-8-1 18:09
这个是可以的,其实条件格式支持公式,公式可以直接拼接变量,参考下列代码:

不太行,条件仍然引用了单元格的数据。。。。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-9 17:43:19
6#
您可以提供一个能重现您问题的Demo,我们排查一下问题原因
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部