找回密码
 立即注册

QQ登录

只需一步,快速开始

hongshanshan SpreadJS 开发认证
高级会员   /  发表于:2022-7-30 00:29  /   查看:2122  /  回复:5
sheet.getRange(0, 0, sheet.getRowCount(), sheet.getColumnCount(), GC.Spread.Sheets.SheetArea.viewport).foreColor("#000000");可以成功将单元格的字体变更颜色


sheet.getRange(-1, 0, -1, sheet.getColumnCount(), GC.Spread.Sheets.SheetArea.viewport).foreColor("#000000");

不能将单元格的字体变更颜色,这个还是官方api提供的方法
https://demo.grapecity.com.cn/sp ... ange.html#foreColor

请问差异在哪里?

5 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-8-1 16:24:40
沙发
你好,这边使用上面两种方法都是可以正常设置字体颜色的,附件是我测试的demo,可以下载试一下哈

前景色.html

1.83 KB, 下载次数: 165

回复 使用道具 举报
hongshanshanSpreadJS 开发认证
高级会员   /  发表于:2022-8-1 16:42:18
板凳
Derrick.Jiao 发表于 2022-8-1 16:24
你好,这边使用上面两种方法都是可以正常设置字体颜色的,附件是我测试的demo,可以下载试一下哈

第一步,将单元格A1的字体设置成黄色

然后控制台执行
sheet.getRange(-1, 0, -1, sheet.getColumnCount(), GC.Spread.Sheets.SheetArea.viewport).foreColor("#000000");
效果是并没有变更颜色
image.png839360656.png

然后执行
sheet.getRange(0, 0, sheet.getRowCount(), sheet.getColumnCount(), GC.Spread.Sheets.SheetArea.viewport).foreColor("#000000");
颜色变更了
image.png646726379.png

回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-8-1 17:01:18
地板
hongshanshan 发表于 2022-8-1 16:42
第一步,将单元格A1的字体设置成黄色

然后控制台执行

"第一步,将单元格A1的字体设置成黄色"这一步可以理解为是设置的单元格样式。

而sheet.getRange(-1, 0, -1, sheet.getColumnCount()),第一、第三个参数是-1,因此表示的是列区域,也就是说这个是按列来设置前景色。

而sheet.getRange(0, 0, sheet.getRowCount(), sheet.getColumnCount())这种用法,可以拆分为给单元格设置前景色样式。

在我们的样式设计逻辑中,有这样的优先级顺序:单元格 > 行 > 列 。也就是说第一步和第三步,都是在单元格层级上修改样式,样式优先级相同,后设置的会覆盖先设置的。而第二步是按列设置的,优先级是低于单元格样式的,因此,后设置的列样式无法覆盖先设置的单元格样式。
回复 使用道具 举报
hongshanshanSpreadJS 开发认证
高级会员   /  发表于:2022-8-1 17:19:28
5#
好的,了解了
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-8-1 17:23:50
6#

那这边就结贴了哈,有新问题欢迎开新帖交流~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部