找回密码
 立即注册

QQ登录

只需一步,快速开始

armgong
金牌服务用户   /  发表于:2017-7-20 17:34  /   查看:3571  /  回复:5
请问如何将spreadjs加载的workbook变成只读,就是想在加载完成后,用户只能查看,不能做任何修改?找了一圈帮助文档没有找打

5 个回复

倒序浏览
CCKan
银牌会员   /  发表于:2017-7-20 18:37:48
沙发
sheet.options.isProtected = true;
回复 使用道具 举报
armgong
金牌服务用户   /  发表于:2017-7-20 18:46:10
板凳
这个不一定能行,如果导入excel文件的时候某些单元格不保护(可以改),那么这个选项不成立,现在需要所有的单元格只能看不能改
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-20 19:25:44
地板
本帖最后由 ClarkPan 于 2017-7-21 09:03 编辑

您好,您可以做如下步骤来完成单元格只读:
1.锁定所有单元格(默认所有单元格是自定锁定的),锁定单元格您可以参考http://sphelp.grapecity.com/webh ... llRange~locked.html
2.使用表单设置保护工作表,设置保护工作表您可以参考:
http://demo.gcpowertools.com.cn/ ... /samples/protection
您只要将所有的单元格锁定,然后在设置保护,这样您就可以将workbook变为只读了。

回复 使用道具 举报
armgong
金牌服务用户   /  发表于:2017-7-21 10:39:19
5#
上面的也是一个解决思路,
关键是用户上传的excel里边一定存在没有保护的单元格,如果要按上面做的话,需要遍历锁定所有单元格,然后再保护,不知道如果表格很大的话会不会很慢。
anyway 也是一个办法,不过能不能在以后的版本中增加一个spread.readonly的属性呀?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-7-21 11:15:13
6#
armgong 发表于 2017-7-21 10:39
上面的也是一个解决思路,
关键是用户上传的excel里边一定存在没有保护的单元格,如果要按上面做的话,需 ...

您好,
首先设置单元格只读只能通过锁定单元格并保护工作表这个逻辑来完成(Excel中也是这样的实现方式),所以遍历是没有办法避免的,因为拿到一个模板的时候并不知道哪些单元格是锁定的哪些是不锁定的,同时遍历只是修改单元格的属性,并不牵扯到重绘的问题,这样对性能不会有太大的影响(而且也没有别的办法)。
另外,您提出的这个需求,其实我们要做内部的逻辑这只能是这样做,还是通过遍历锁定然后保护工作表来完成。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部