本帖最后由 Ellia.Duan 于 2024-6-11 11:18 编辑
您好,重新回答下您的第一个问题:
目前对于单元格锁定,推荐的是表单保护的方案:
如果只对一个一个单元格设置锁定。
您可以先设置默认style 如
- let defaultStyle = new GC.Spread.Sheets.Style()
- defaultStyle.locked = false;
- sheet.setDefaultStyle(defaultStyle)
复制代码 然后对不能编辑的单元格设置锁定,如
- let lockedStyle = new GC.Spread.Sheets.Style()
- lockedStyle.locked = true;
- lockedStyle.backColor = 'pink'
- sheet.getRange(-1,0,-1,3).setStyle(lockedStyle)
复制代码 上面的代码只是对前四列单元格设置锁定,其他单元格可以正常编辑
最后还需要加上
- 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
您可以根据上面内容,具体评估方案。
|