找回密码
 立即注册

QQ登录

只需一步,快速开始

拾荒

注册会员

8

主题

44

帖子

110

积分

注册会员

积分
110
最新发帖
拾荒
注册会员   /  发表于:2024-4-3 17:27  /   查看:1028  /  回复:19
1金币
本帖最后由 Joestar.Xu 于 2024-4-11 11:33 编辑

spreadjs 11版本 如何校验当前单元格是否满足条件格式的规则,

var rules = sheet.conditionalFormats.getRules(area.row, area.col);通过这个获取规则,如何校验,当前单元格是否满足,如果满足,设置为条件格式规则的颜色。

最佳答案

查看完整内容

您好,我看了一下您这个Excel文件,这几个单元格(绿色角标)中存储的数值都是字符串形式,导致条件格式被直接触发,显示为了红色。 将这些单元格的值修改为数值即可(单元格格式也不能设置为文本格式)。

19 个回复

倒序浏览
最佳答案
最佳答案
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-4-3 17:27:12
来自 18#
您好,我看了一下您这个Excel文件,这几个单元格(绿色角标)中存储的数值都是字符串形式,导致条件格式被直接触发,显示为了红色。

image.png326263427.png

将这些单元格的值修改为数值即可(单元格格式也不能设置为文本格式)。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-4-3 17:47:48
2#
您好,条件格式在设置好以后会为自动满足条件的单元格设置背景色,无需手动处理,您可以参考学习指南中的内容来实现:https://demo.grapecity.com.cn/sp ... es/purejs#timestamp
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
拾荒
注册会员   /  发表于:2024-4-3 20:53:38
3#
Joestar.Xu 发表于 2024-4-3 17:47
您好,条件格式在设置好以后会为自动满足条件的单元格设置背景色,无需手动处理,您可以参考学习指南中的内 ...

这个知道哦,但是在设置完规则后,根据规则是在数字返回,但是后续给当前单元格设置(setValue)的字符串的时候,无法很好是校验,显示颜色跟设置的规则颜色不一致,如果是收到输入数字是正常的。
回复 使用道具 举报
拾荒
注册会员   /  发表于:2024-4-7 11:18:28
4#
Joestar.Xu 发表于 2024-4-3 17:47
您好,条件格式在设置好以后会为自动满足条件的单元格设置背景色,无需手动处理,您可以参考学习指南中的内 ...

http://fjhmtd.com:31601/glaf/website/public/form/page/viewPage?col1570864438234=1&col1570864437277=19068357508005888&col1560307819254=04b050e41ca94d09ba9708e967b59c44&col1570864472677=20028&col1573693874485=222&col1570866498231=756cb1a3-dd25-11ee-b711-77d3cec1e383&col1570864437071=382927&id=2ab9230a8120440888f8c5d768940067&col1570864436809=349%7C20008%7C20022%7C20025%7C20026%7C20027%7C20028%7C

在一般检验项目中,第一个和第三个校验有问题,按理字符串应该是显示红色的。但是只有第二个是红色的,其他有问题,而且如果输入的是数字,又是正常的。
回复 使用道具 举报
拾荒
注册会员   /  发表于:2024-4-7 11:21:11
5#
Joestar.Xu 发表于 2024-4-3 17:47
您好,条件格式在设置好以后会为自动满足条件的单元格设置背景色,无需手动处理,您可以参考学习指南中的内 ...

脚本是spread.cell.extend.js 规则参数值是在(msg.dynamicElongate == 'ruleArea') sheet.getCell(area.row,area.col).value(s);
var range = sheet.getRange(area.row, area.col, area.rowCount, area.colCount);
                                                            var rules = sheet.conditionalFormats.getRules(area.row, area.col);
回复 使用道具 举报
拾荒
注册会员   /  发表于:2024-4-7 11:31:15
6#
拾荒 发表于 2024-4-7 11:21
脚本是spread.cell.extend.js 规则参数值是在(msg.dynamicElongate == 'ruleArea') sheet.getCell(area.r ...

脚本位置/glaf/scripts/kendo/cell
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-4-7 14:52:51
7#
您提供一下可以复现出这个问题的JSON文件,这边复现后调研一下。
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
拾荒
注册会员   /  发表于:2024-4-7 15:11:44
8#
Joestar.Xu 发表于 2024-4-7 14:52
您提供一下可以复现出这个问题的JSON文件,这边复现后调研一下。

开放路口没那么快,能否提供一下根据获取规则,重新校验的方法。
var rules = sheet.conditionalFormats.getRules(area.row, area.col);
要11版本的。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-4-7 19:07:10
9#
您可以尝试使用evalute接口来计算是否通过校验。

https://demo.grapecity.com.cn/sp ... .Condition#evaluate

image.png926553649.png
SpreadJS 17.0.9 | GcExcel 7.1.2 已发布~
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部