找回密码
 立即注册

QQ登录

只需一步,快速开始

大Vi

高级会员

160

主题

356

帖子

1126

积分

高级会员

积分
1126
大Vi
高级会员   /  发表于:2023-12-4 10:58  /   查看:1992  /  回复:3
1金币
本帖最后由 Lynn.Dou 于 2023-12-6 17:41 编辑

产品:SpreadJS
版本:V14.0.6
  1. let style = new GC.Spread.Sheets.Style()
  2.             style.foreColor = "red"
  3.             sheet.conditionalFormats.addCellValueRule(GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators.equalsTo, "1", "", style, [
  4.                 new GC.Spread.Sheets.Range(-1, 0, -1, 1)
  5.             ])
复制代码
需求:给第一列数据中,数据是1、1.1、1.2  、2等的单元格字体加红色。


1、我只知道上述代码那样一个个设置,如果数据多了就要写好多好多行,有没有统一设置的方法,把需要的匹配的值一次性全部设置?
2、比如值1可能是数字也可以字符串类型,怎么匹配两种类型呢?上述代码设置后只认识字符串1,数字不会变红。


最佳答案

查看完整内容

您好,根据您的描述来看,我们可以通过检验单元格值是否是整数或者一位小数来设置对应的样式,当然如果您输入的是文本格式的数字也同样适用。

3 个回复

倒序浏览
最佳答案
最佳答案
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-12-4 10:58:18
来自 4#
本帖最后由 Richard.Huang 于 2023-12-22 14:50 编辑
大Vi 发表于 2023-12-4 17:51
问题1,我只需要对一列处理,这一列可能出现的数据可能有1、1.1、2、2.1、2.1.1、2.2、2.2.1、2.2.1.1、n ...

您好,根据您的描述来看,我们可以通过检验单元格值是否是整数或者一位小数来设置对应的样式,当然如果您输入的是文本格式的数字也同样适用。
  1. var sheet = spread.getActiveSheet()
  2. let style = new GC.Spread.Sheets.Style()
  3. style.backColor = "red"
  4. var ranges = [new GC.Spread.Sheets.Range(-1, -1, -1, -1)];
  5. sheet.conditionalFormats.addFormulaRule("=ISNUMBER(A1)*OR(LEN(A1)-FIND(".",A1&".")=1, FIND(".", A1&".")=LEN(A1)+1)", style, ranges);
复制代码


回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-4 11:58:58
2#
您好,
问题1:
new GC.Spread.Sheets.Range(-1, 0, -1, 1) 这句代码的意思对第一列数据应用该条件格式。
“如果数据多了就要写好多好多行,有没有统一设置的方法,把需要的匹配的值一次性全部设置”
这句话如何理解呢?如果您是想对整个表单单元格应用该条件格式,可以修改range为 (-1, -1, -1, -1)

问题2:
如下图所示,使用V14.0.6测试对于数字1、字符串“1”均可应用该条件格式,即未复现您描述的问题。
image.png675126037.png
附件为测试demo,供参考。

demo-designer模板-V14.0.6.html

2.63 KB, 下载次数: 180

回复 使用道具 举报
大Vi
高级会员   /  发表于:2023-12-4 17:51:44
3#
Lynn.Dou 发表于 2023-12-4 11:58
您好,
问题1:
new GC.Spread.Sheets.Range(-1, 0, -1, 1) 这句代码的意思对第一列数据应用该条件格式。 ...

问题1,我只需要对一列处理,这一列可能出现的数据可能有1、1.1、2、2.1、2.1.1、2.2、2.2.1、2.2.1.1、n、n.1、n.1.1、n.2、n.3这样很多层级的序号,但是我只需要对所有一、二级层级的序号标红,也就是只要1、1.1、2、2.1、2.2、n、n.1、n.2、n.3这样的才标红,所以不能对所有单元格处理,就需要对所有需要匹配的数据都写一遍。我猜来问有没有统一设置的方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部