找回密码
 立即注册

QQ登录

只需一步,快速开始

newAll

中级会员

71

主题

190

帖子

757

积分

中级会员

积分
757
newAll
中级会员   /  发表于:2022-11-14 15:57  /   查看:994  /  回复:3
1金币
如demo,点击选中3-3,可以直接将选中颜色设置上。但是0-0无法将颜色设置上。如果直接将0-0选中颜色设置上?

demo.html

2.68 KB, 下载次数: 26

最佳答案

查看完整内容

这样的需求您实际上是条件格式的需求,您如果给整个表单的区域设置一个条件格式,满足条件设置背景色为红色就可以了。selectionBackColor毕竟是选中驱动,标红区域会随着用户的选中发生变化而变化,感觉不太符合您的最终需求。 我这边的建议是用条件格式来实现。具体可以参考学习指南关于条件格式的介绍。 https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/cells/conditional-format/basic-conditional-format ...

3 个回复

倒序浏览
最佳答案
最佳答案
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-14 15:57:22
来自 5#
这样的需求您实际上是条件格式的需求,您如果给整个表单的区域设置一个条件格式,满足条件设置背景色为红色就可以了。selectionBackColor毕竟是选中驱动,标红区域会随着用户的选中发生变化而变化,感觉不太符合您的最终需求。
我这边的建议是用条件格式来实现。具体可以参考学习指南关于条件格式的介绍。
https://demo.grapecity.com.cn/sp ... ional-format/purejs
另外,注意一点相同的条件格式可以通过设置的范围进行合并,这样做可以有效减少条件格式的数量,从而增强性能。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-14 18:04:08
3#
本帖最后由 Clark.Pan 于 2022-11-14 18:13 编辑

0-0无法将颜色设置上,是因为您当前选中的单元格是A1。
image.png73234557.png
3-3,可以直接将选中颜色设置上,是因为您当前选中的单元格不是不D4
image.png396960448.png

selectionBackColor接口改变的是单元格在选中状态时的背景色。这里的行为参考的是Excel的选中,当进行区域选择的时候左上角为白色,其余选中颜色,例如下图Excel的行为
image.png269584960.png
所以当您选择A1,并且设置sheet.addSelection(0, 0, 1, 1);(其实这句话写与不写被没有什么卵用)。总体来说选择的还是只有A1一个单元格,那么参考上面的逻辑A1将会是白色背景色(只有选择一个以上的单元格才能看出selectionBackColor设置颜色的效果)。
接下来,再看

sheet.options.selectionBackColor = "#ff000073";
sheet.addSelection(3, 3, 1, 1);

基于目前选中的单元格是A1,那么设置sheet.addSelection(3, 3, 1, 1);就相当于添加了一个选中项D4,那么就等于多选,同时选择了A1和D4。 那么A1为白色背景,D4背景为#ff000073。
以上是SpreadJS此处的逻辑,是没有什么毛病的。您具体是想要实现一个什么样的需求,您可以将您实际要实现的需求讲一下。
回复 使用道具 举报
newAll
中级会员   /  发表于:2022-11-14 18:25:27
4#
Clark.Pan 发表于 2022-11-14 18:04
0-0无法将颜色设置上,是因为您当前选中的单元格是A1。

3-3,可以直接将选中颜色设置上,是因为您当前选 ...

我们有个功能是需要将错误的单元格定位出来并标红,其他的单元格都能红,就这0-0单元格不行。按你这思路。那我只能特殊处理下0-0单元格,如果是0-0单元格,就定位到其他单元格再把0-0标红,应该就行了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部