找回密码
 立即注册

QQ登录

只需一步,快速开始

afushenglih
初级会员   /  发表于:2019-7-29 16:46  /   查看:7139  /  回复:10
前端加载 excel 表,只需要显示给用户看。如何设置只读,用户不能编辑和修改

10 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-7-29 17:54:44
沙发
您好,可以用表单保护来实现,如学习指南实例所示:

https://demo.grapecity.com.cn/Sp ... /#/demos/protection

表单保护可以选择设置保护配置项,当所有配置项都为false时,可以实现完全只读的效果,如图所示:

image.png233420714.png
回复 使用道具 举报
afushenglih
初级会员   /  发表于:2019-7-30 09:54:56
板凳
过测试发现只有在整个sheet锁定的情况下【sheet.setIsProtected(true);】,单元格是锁定的时候,这时候单元才能锁定,有没有一种方法不管单元格有没有锁定,能让sheet 处于不可编辑的状态。因为客户给的excel 模板,里面的单元格不知道那个单元格有没有锁定,不可能都一个个检查单元格是否锁定。
image.png612918700.png
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-7-30 15:42:35
地板
您好,V10之前的版本不支持学习指南示例中的功能,请您升级到最新的版本后再尝试。
回复 使用道具 举报
afushenglih
初级会员   /  发表于:2019-7-30 16:06:19
5#
你好,使用了 spreadjs的12.0.0版本,做了测试,在模板的excel中的单元 没有处于锁定状态的时候,导入spreadjs中,使用  
var sheet = spread.getActiveSheet();
sheet.options.isProtected =true;
此单元格 仍然是可编辑的,我想问一下,如果有没有不管一种方法,不管模板excel中的单元格是否处于锁定状态,在导入spreadjs 中,所有单元格都是不可编辑的。因为客户给的excel 模板,里面的单元格不知道那个单元格有没有锁定,不可能都一个个检查单元格是否锁定。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-7-30 16:18:44
6#
您好,如学习指南示例所示,可以把所有的表单保护参数都设置为false即可,如下代码所示:

  1. var options = {
  2. allowDeleteColumns: false,
  3. allowDeleteRows: false,
  4. allowDragInsertColumns: false,
  5. allowDragInsertRows: false,
  6. allowEditObjects: false,
  7. allowFilter: false,
  8. allowInsertColumns: false,
  9. allowInsertRows: false,
  10. allowResizeColumns: false,
  11. allowResizeRows: false,
  12. allowSelectLockedCells: false,
  13. allowSelectUnlockedCells: false,
  14. allowSort: false
  15. };
  16. sheet.options.protectionOptions = option;
复制代码
回复 使用道具 举报
afushenglih
初级会员   /  发表于:2019-7-31 14:17:35
7#
本帖最后由 afushenglih 于 2019-7-31 14:42 编辑

你好,看了你的回复,也看了学习指南。我在咱们的demo中测试了步骤如下:打开:https://demo.grapecity.com.cn/SpreadJS/TutorialSample/#/demos/protection
1、选中单元格 B2
2.勾选 protected sheet ,去掉Select Locked Cells 和Select UnLocked Cells 前面的勾选
3.点击下面的setting 按钮
但是,现在单元格 B2 依然能够编辑,想问这个什么原因,是不是一个bug
现在在我们程序中也是遇到同样的问题。


另外,有没有一种 最简单的办法,不设置protectionOptions 属性,不管单元格 是否锁定与否,
让spreadjs  是只读的,如下图,我在网上搜索到,可能是v10 之前的版本


image.png272878112.png
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-7-31 19:29:04
8#
您好,我们没能重现您的问题,请检查一下您目前使用的版本,推荐升级到最新版本尝试,如果仍有问题,请提供一个能够重现问题的Demo。
回复 使用道具 举报
afushenglih
初级会员   /  发表于:2019-8-1 15:42:56
9#
你好,我测试就是在spreadjs 的官网的这个地址测试的,https://demo.grapecity.com.cn/Sp ... /#/demos/protection
复现步骤很简单,
1. 打开上面的连接
2.选中单元格 B2
3.勾选 protected sheet ,去掉Select Locked Cells 和Select UnLocked Cells 前面的勾选
4.点击下面的setting 按钮
再次修改 B2 单元格依然,可以修改,想问这个什么原因,是不是一个bug


image.png798845824.png image.png768995971.png
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-1 17:52:09
10#
抱歉,没考虑到这个case,在执行完setting后,可以清除一下单元格的选择状态,参考下列代码:

  1. var spread = GC.Spread.Sheets.findControl("ss");
  2. var sheet = spread.getActiveSheet();
  3. sheet.clearSelection();
复制代码
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部