找回密码
 立即注册

QQ登录

只需一步,快速开始

Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-6-7 16:07:03
11#
您好,根据您的描述,您的问题似乎与17版本与框架有关。只提供ssjson 不能复现您的问题。
所以才需要您提供一个可以复现您问题的demo 。
我从您的描述中 知道,您已经对这一部分进行了排查。15版本在vue框架中没有问题,17版本在vue框架中有问题。
所以,需要您将您的测试demo发给我们,具体调研下。
回复 使用道具 举报
卑微的打工狗
金牌服务用户   /  发表于:2024-6-7 18:26:53
12#
Ellia.Duan 发表于 2024-6-7 16:07
您好,根据您的描述,您的问题似乎与17版本与框架有关。只提供ssjson 不能复现您的问题。
所以才需要您提 ...

demo工程文件过大,无法上传,我来联系您同事处理该问题吧
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-6-11 09:53:45
13#
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-6-11 11:02:18
14#
本帖最后由 Ellia.Duan 于 2024-6-11 11:18 编辑

您好,重新回答下您的第一个问题:
目前对于单元格锁定,推荐的是表单保护的方案:
如果只对一个一个单元格设置锁定。
您可以先设置默认style 如

  1. let defaultStyle = new GC.Spread.Sheets.Style()
  2. defaultStyle.locked = false;
  3. sheet.setDefaultStyle(defaultStyle)
复制代码
然后对不能编辑的单元格设置锁定,如
  1. let lockedStyle = new GC.Spread.Sheets.Style()
  2. lockedStyle.locked  = true;
  3. lockedStyle.backColor = 'pink'
  4. sheet.getRange(-1,0,-1,3).setStyle(lockedStyle)
复制代码
上面的代码只是对前四列单元格设置锁定,其他单元格可以正常编辑
最后还需要加上
  1. sheet.options.isProtected = true;
复制代码


如果上述方案不能满足您的需求,再来看监听事件的方式,
https://demo.grapecity.com.cn/sp ... C%E7%BC%96%E8%BE%91
监听事件,如果是您不想编辑的单元格,则args.cancel = true;
在这篇文章中,提到了EditStarting事件,同样,如果有复制粘贴的业务场景,您还需要监听粘贴事件clipboardpasting去阻止粘贴,
或者是行高列宽事件,监听columnchanging事件阻止列宽改变事件

监听的事件较多,您可以参考Events
https://demo.grapecity.com.cn/sp ... pread.Sheets.Events
除此之外,del键可以删除单元格内容,但是EditStarting事件无法监听到del键需要用RangeChanged事件去监听,del删除或者是右键菜单中“清除内容”的操作。但是RangeChanged无法对删除操作进行撤销,需要重写del键。
需要参考这篇文章
https://gcdn.grapecity.com.cn/showtopic-200322-1-1.html

您可以根据上面内容,具体评估方案。




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