找回密码
 立即注册

QQ登录

只需一步,快速开始

reshuihu007

注册会员

6

主题

15

帖子

79

积分

注册会员

积分
79
reshuihu007
注册会员   /  发表于:2019-8-2 15:21  /   查看:2746  /  回复:5

image.png158101195.png
如图所示:红框内是可以编辑的列信息;
红框前是不可编辑的列信息;
采用额保护表格的方式,给具体列设置可编辑属性,
问题: 红框内的cellType如6列设置了后面的每列都是6列的属性。  
请问这个问题如何处理?
spread.getSheet(i).setStyle(-1, 6, style); //交付物类型
spread.getSheet(i).setStyle(-1, 7, style); //
spread.getSheet(i).setStyle(-1, 8, style);
spread.getSheet(i).setStyle(-1, 9, style);
spread.getSheet(i).setStyle(-1, 10, style);
spread.getSheet(i).setStyle(-1, 11, style);
spread.getSheet(i).setStyle(-1, 12, style);

// 保护列
spread.getSheet(i).options.protectionOptions = option;
spread.getSheet(i).options.isProtected = true;
image.png837064513.png

5 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-5 09:51:12
推荐
您好,您可以尝试以这种方式设置:

  1. // 设置整个B列的单元格locked为false
  2. sheet.suspendPaint();
  3. sheet.getRange(0,1,sheet.getRowCount(), 1).locked(false);
  4. sheet.resumePaint();
复制代码


getRange方法的API:

https://demo.grapecity.com.cn/sp ... sheet~getRange.html

如果仍然无法解决问题,请您打包一个能够重现问题的Demo上传到附件中,

我们会为您排查问题的原因
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-2 18:52:25
沙发
您好,您只需要更改style的熟悉locked为false即可,与cellType不会冲突,参考API:

https://demo.grapecity.com.cn/sp ... s.Style~locked.html
回复 使用道具 举报
reshuihu007
注册会员   /  发表于:2019-8-4 22:22:49
板凳
image.png663433837.png
  var style = new GC.Spread.Sheets.Style();
            style.locked = false;
locked 是false的
回复 使用道具 举报
reshuihu007
注册会员   /  发表于:2019-8-5 13:11:12
5#
感谢版主,问题已经解决;
请问 之前使用 spread.getSheet(i).setStyle(-1, 7, style);  如果有1列自定义为下拉框,后面所有的列都跟着定义为下拉框;
采用版主给的方法后下拉框自定义只作用在当前列。请问这是为什?
spread.getSheet(i).getRange(0,7,spread.getSheet(i).getRowCount(), 1).locked(false);
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-5 16:02:32
6#
您好,我在楼上贴出了getRange的API,实际上您注意API中,getRange方法传入的4个参数:

getRange(行标,列标,行数,列数)

因此,按照您的写法:

spread.getSheet(i).getRange(0,7,spread.getSheet(i).getRowCount(), 1).locked(false);


getRange的最后一个参数是1,也就意味着这次操作仅仅针对了1列进行操作的。

看您的截图,应该有5列,那么这里您可以传入5试一下。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部