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

QQ登录

只需一步,快速开始

liushiniao

初级会员

31

主题

76

帖子

269

积分

初级会员

积分
269

活字格认证微信认证勋章

liushiniao
初级会员   /  发表于:2018-2-9 10:12  /   查看:3477  /  回复:5
你好,想问一下,我的模板有多个sheet,在设置了
  1. var index = spread.getSheetCount();
  2.                     for(var i = 0;i<index;i++){
  3.                         spread.getSheet(i).options.isProtected = true;
  4.                     }
复制代码
发现模板并没有被锁定,还是处于可编辑状态,而单sheet下,通过
  1. sheet.options.isProtected = true;
复制代码
就可以锁死,请问是什么原因导致的?

5 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-2-9 16:05:51
沙发
您好:

您看一下没有锁定的sheet中的单元格的locked属性是否是false.这个跟Excel策略是一样的,设置保护的sheet中锁定的单元格是无法被编辑的,没有锁定的单元格仍然是可以被编辑的。
回复 使用道具 举报
liushiniao
初级会员   /  发表于:2018-2-9 17:09:59
板凳
我的需求是在查看的时候打开报表,全部都是不可编辑,只有处于编辑操作的时候才可以让特定的单元格处于可编辑状态,现在是当我点击查看按钮,这个时候将sheet.options.isProtected = true; 如果我的模板只有一个sheet是锁死的,但是多sheet就不生效了,我需要将所有的单元格遍历全部设成锁定吗?有没有其他的办法?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-2-9 17:53:23
地板
单元格必须是锁定的在表单保护时才会不可编辑。这两个步骤是缺一不可的。spreadjs默认单元格是锁定的。但您的模板是如何生成的就不知道了,您要不提供一个重现问题的demo,我帮您看一下好了。
回复 使用道具 举报
liushiniao
初级会员   /  发表于:2018-2-10 10:46:39
5#
就是这个模板,我导入以后,简单解析然后保存,然后我根据用户触发的是查看还是填报来锁定或者解锁单元格,查看的话没做任何操作,直接是循环的sheet的数量然后逐个设置成保护模式

test.zip

30.57 KB, 阅读权限: 150, 下载次数: 2

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-2-11 09:44:50
6#
您好,我试了一下您这么写没有问题,我这边全部锁定了。您要不然提供一个demo,我看看您代码的逻辑是怎么做的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部