找回密码
 立即注册

QQ登录

只需一步,快速开始

大白菜

中级会员

77

主题

257

帖子

882

积分

中级会员

积分
882

圣诞拼拼乐微信认证勋章

[已处理] 锁定表格问题

大白菜
中级会员   /  发表于:2017-8-10 09:24  /   查看:3575  /  回复:7
blob504123839.png

整个excel 是导入进去的。画1区域我想不可编辑,锁定。2区域是空白地方我想可编辑。
   代码如下:
    后台。net:
          SheetView sheet = spread.Sheets[m.SheetID];
          Cell cell = spread.Sheets[m.SheetID].Cells[m.RowNum, m.ColumNum];
            if (aaa== 0)  这里有个判断,判断如果是1区域的地方就锁定,其他地方不锁定。
            {
                    cell.Locked = true;
            }
          else{

                 cell.Locked = false;
             }
前台JS锁定已经开启:   
             sheet.setIsProtected(true);

7 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-10 14:48:15
沙发
明白了,您应该是先设置的    sheet.setIsProtected(true);然后再导入的吧,这样是有问题的。因为导入是整个spread的导入,如果在导入前的设置,导入后通通都会被覆盖掉,所以会出现没有锁定。解决方法是:
导入之后再设置锁定即可
回复 使用道具 举报
大白菜
中级会员   /  发表于:2017-8-10 17:03:59
板凳
ClarkPan 发表于 2017-8-10 14:48
明白了,您应该是先设置的    sheet.setIsProtected(true);然后再导入的吧,这样是有问题的。因为导入是整 ...

我导入不是走的前端js导json的、我是上传整个excel文件,然后后台读取excel,里面做判断哪表格锁定哪个不锁定。然后输出表格json。到前台,这个时候页面的效果并没有如我像后台判断的那样。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-10 19:40:16
地板
大白菜 发表于 2017-8-10 17:03
我导入不是走的前端js导json的、我是上传整个excel文件,然后后台读取excel,里面做判断哪表格锁定哪个不 ...

那您设置 sheet.setIsProtected(true);是在输出表格json到前台之前呢还是之后呢,如果是之前,那还是我说的问题,如果是之后,请您提供一个demo,我需要根据您的demo来调试一下。
回复 使用道具 举报
大白菜
中级会员   /  发表于:2017-8-11 10:24:41
5#
ClarkPan 发表于 2017-8-10 19:40
那您设置 sheet.setIsProtected(true);是在输出表格json到前台之前呢还是之后呢,如果是之前,那还是我说 ...

是在输出表格json后设置的。是我请求后台数据,返回json,然后初始化加载表格的时候会开启sheet.setIsProtected(true)。   由于项目不方便给demo,我随便做了一个建议demo.请用ie浏览器打开,麻烦了。谢谢。

Test.7z

1.18 MB, 阅读权限: 1, 下载次数: 107

IE测试demo

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-11 12:16:24
6#
我看了一下您的json,虽然在列的属性中设置了locked=true
但是您单元格中有设置了属性locked=false,因为单元格样式的权值大于列,所以单元格locked=false会覆盖之前的locked=true的设置,所以导致您部分单元格没有被锁定,举个例子:
您第一列设置了整个列的锁定locked=true,如下图:
image.png164596861.png
image.png734463195.png
但是您第一个测试姓名这个单元格中有设置了locked=false的样式,如下图:
image.png471524657.png
image.png907036437.png
上面我说过单元格的样式权值大于列样式,所以单元格设置的locked=false的样式会覆盖之前列设置的locked=true的样式,导致您的问题。
回复 使用道具 举报
大白菜
中级会员   /  发表于:2017-8-11 13:04:56
7#
本帖最后由 大白菜 于 2017-8-11 15:31 编辑
ClarkPan 发表于 2017-8-11 12:16
我看了一下您的json,虽然在列的属性中设置了locked=true
但是您单元格中有设置了属性locked=false,因为单 ...

我已经解决了,谢谢帮忙
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-8-11 17:20:34
8#
大白菜 发表于 2017-8-11 13:04
我已经解决了,谢谢帮忙

不客气,有什么问题欢迎另开新帖进行询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部