请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

Yuengh

注册会员

22

主题

55

帖子

177

积分

注册会员

积分
177
Yuengh
注册会员   /  发表于:2017-9-29 10:26  /   查看:3135  /  回复:5
比如说我在页面上测试的是没问题的,       var sheet = spread.getActiveSheet();        spread.suspendPaint();
        var style = new GC.Spread.Sheets.Style();
        style.locked = false;
        sheet.setStyle(-1, -1, style);
        var style2 = new GC.Spread.Sheets.Style();
        style2.locked = true;
        sheet.setStyle(-1, 1, style2);
        sheet.options.isProtected = true;
这一段代码的效果是让第二列不可编辑,但是在我测试导入表单之后,全部页面都不可以修改,但是我一旦把 sheet.options.isProtected = true;这句话去掉之后,就会变成没做控制一样,所以我想问下有没有方法可以指定某一列或者某一行只读,在导入数据进来后呢?


5 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-9-29 14:22:58
沙发
您好,原因是这样的 sheet.setStyle(-1, -1, style); -1,-1代表全局的defaultStyle是一个意义,所以直接设置-1,-1是没作用的。
您将其改为 var style = sheet.getDefaultStyle(); style.locked = false;即可。后面的代码不用变化
回复 使用道具 举报
Yuengh
注册会员   /  发表于:2017-9-29 14:47:42
板凳
ClarkPan 发表于 2017-9-29 14:22
您好,原因是这样的 sheet.setStyle(-1, -1, style); -1,-1代表全局的defaultStyle是一个意义,所以直接设 ...

好像还是不行,我这个是导入进来的
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-9-29 14:51:19
地板
您在导入之后在重新获取一次sheet对象,然后再进行刚才的设置就可以了,如果还不行的话,麻烦您提供一个demo,我们帮您具体看一下是什么地方的问题。
回复 使用道具 举报
Yuengh
注册会员   /  发表于:2017-9-29 15:07:07
5#
ClarkPan 发表于 2017-9-29 14:51
您在导入之后在重新获取一次sheet对象,然后再进行刚才的设置就可以了,如果还不行的话,麻烦您提供一个dem ...

新建文件夹.zip (948.25 KB, 下载次数: 85)
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-9-29 16:54:51
6#
您好,原因是这样的因为Excel默认所有单元格是锁定的,导入后locked属性的style设置在了每一个单元格上,虽然修改了defaultStyle但是它的优先级不如单元格的style高,所以所有单元格仍然是锁定的。于是设置了保护后所有单元格都不可编辑了。
需要根据每个单元格进行设置,我修改后的demo如下(demo中去掉了其他多余逻辑,您可以之后往上加),您可以参考其中的写法。

新建文件夹.zip

948.23 KB, 下载次数: 95

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