找回密码
 立即注册

QQ登录

只需一步,快速开始

甲壳虫

注册会员

12

主题

39

帖子

101

积分

注册会员

积分
101
甲壳虫
注册会员   /  发表于:2018-8-13 20:54  /   查看:5697  /  回复:11
麻烦问一下,如果单元格没有设置,我用以下代码就可以设置改行可以修改。但是如果该单元格我设置为红色or设置边框,以下代码就对单元格无效,单元格不能被修改。let style = new spreadApi.Style();style.locked = false;
sheet.setStyle(row,-1,style);



11 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-8-14 09:37:18
沙发
如果有既存样式,那么可以通过sheet.getStyle()先获得目前单元格的style,然后在设置style.locked = false;然后在setStyle回去。locked是style中的一个属性。用new的话相当于初始化了一个全新的style。
回复 使用道具 举报
甲壳虫
注册会员   /  发表于:2018-8-14 11:04:58
板凳
ClarkPan 发表于 2018-8-14 09:37
如果有既存样式,那么可以通过sheet.getStyle()先获得目前单元格的style,然后在设置style.locked = false ...

但是我设置了样式,getStyle是为空的。所以我new Style()然后设置style.locaked=false传给这个单元格,但设置后样式设置不成功。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-8-14 13:44:01
地板
本帖最后由 ClarkPan 于 2018-8-14 13:45 编辑

知道了您调用的sheet.setStyle(row,-1,style);是设置整行样式,SpreadJS中样式之间是存在优先级的,而行的优先级是低于单元格样式的优先级低。所以设置的false会被单元格本身的true覆盖掉。导致无效。另外您代码中是这样写的吗,还是笔误?
style.locaked=false
应该是
style.locked=false
回复 使用道具 举报
甲壳虫
注册会员   /  发表于:2018-8-14 15:25:18
5#
ClarkPan 发表于 2018-8-14 13:44
知道了您调用的sheet.setStyle(row,-1,style);是设置整行样式,SpreadJS中样式之间是存在优先级的,而行的 ...

嗯嗯笔误。那如何去修改单元格和行的优先级,或者我怎么修改使表格只有这一行可以编辑?可以给个demo么
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-8-14 17:32:39
6#
参考这个:
http://help.grapecity.com/spread ... llRange~locked.html
这样设置locked应该能够避免样式优先级的问题
回复 使用道具 举报
甲壳虫
注册会员   /  发表于:2018-8-14 17:43:06
7#
ClarkPan 发表于 2018-8-14 17:32
参考这个:
http://help.grapecity.com/spread/SpreadSheets11/webframe.html#SpreadJS~GC.Spread.Sheets. ...

谢谢。我看到网页上的这个activeSheet.getRange(2,-1,1,-1,GC.Spread.Sheets.SheetArea.viewport).locked(false);
我不是很懂GC.Spread.Sheets.SheetArea.viewport是什么。
目前我想到的是获取列的数量,然后for循环给每个单元格设置,性能不好。可以麻烦你再说下GC.Spread.Sheets.SheetArea.viewport是什么,这个怎么使用么?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-8-14 17:51:22
8#
这个是获取范围的位置viewport代表表格区域,还可以有其他区域,例如列头,行头等
SheetArea参考:
http://help.grapecity.com/spread ... eets.SheetArea.html
回复 使用道具 举报
甲壳虫
注册会员   /  发表于:2018-8-14 19:23:39
9#
ClarkPan 发表于 2018-8-14 17:51
这个是获取范围的位置viewport代表表格区域,还可以有其他区域,例如列头,行头等
SheetArea参考:
http: ...

sheet.getRange(5, -1, 1, -1, viewport).locked(false);
这个可以表示设置第五行可以编辑么?
我设置了没反应。。。。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-8-15 16:34:07
10#
这是设置第六行可以编辑啊。0代表第一行。
给您demo,您可以好好看一下

model_v11.0.2.html

2.79 KB, 下载次数: 156

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部