找回密码
 立即注册

QQ登录

只需一步,快速开始

dybxin

中级会员

51

主题

185

帖子

658

积分

中级会员

积分
658
dybxin
中级会员   /  发表于:2024-7-18 16:53  /   查看:1134  /  回复:5
10金币
本帖最后由 dybxin 于 2024-7-18 16:59 编辑

开启菜单保护后, 想把某一列的数据复制给新插入的列上, 这时候通过spread.commandManager().register()重新定义了gc.spread.pasteValues命令, 1.这时候我想把数据沾到新的列对应的单元格上只能自己对应的把值一个个的设置过来吗? 或者说还有其它的方法吗?

(2.之所以重新定义命令,我的理解是开启表单保护后,用户不被允许copy 行/列 paste 行/列 等操作了, 但是选择区域copy还是被允许的,是这样吗?)

最佳答案

查看完整内容

复制列不涉及编辑,粘贴列才涉及编辑。在粘贴时,鼠标会点击单元格或列头以选择粘贴位置,通过CellClick事件能够监听被点击单元格位置信息,通过单元格位置信息为其解锁,然后粘贴,这是楼上我要表达的方案。 至于楼主所说”用户要选择哪一列“也可以知道,通过Worksheet:getSelections()能获取选择区域信息,可参考API文档了解详情: https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Worksheet#ge ...

5 个回复

倒序浏览
最佳答案
最佳答案
eat_grape_5
高级会员   /  发表于:2024-7-18 16:53:24
来自 5#
本帖最后由 eat_grape_5 于 2024-7-18 18:12 编辑
dybxin 发表于 2024-7-18 18:04
关于第一点, 至于用户要选则哪一列,我提前是不知道的,所以应该是做不到提前把这一列解锁,再复制(还 ...

复制列不涉及编辑,粘贴列才涉及编辑。在粘贴时,鼠标会点击单元格或列头以选择粘贴位置,通过CellClick事件能够监听被点击单元格位置信息,通过单元格位置信息为其解锁,然后粘贴,这是楼上我要表达的方案。
至于楼主所说”用户要选择哪一列“也可以知道,通过Worksheet:getSelections()能获取选择区域信息,可参考API文档了解详情:
https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Worksheet#getselections
关于工作表保护和单元格锁定分别可参考以下API文档:
IWorksheetOptions:isProtected--https://demo.grapecity.com.cn/spreadjs/help/api/interfaces/GC.Spread.Sheets.IWorksheetOptions#isprotected
CellRange:locked()--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.CellRange#locked
回复 使用道具 举报
eat_grape_5
高级会员   /  发表于:2024-7-18 17:19:25
2#

回答第一个问题:开启表单保护后,对于处于锁定状态的单元格,不能对其再编辑,可以对解锁状态的单元格再编辑。因此,在粘贴前,应该将目标单元格解锁才能对其粘贴。
回答第二个问题:楼主的理解对着呢,开启表单保护后不允许对表单执行复制粘贴行列操作,不过可以选择区域。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-18 17:55:24
3#
eat_grape_5 发表于 2024-7-18 17:19
回答第一个问题:开启表单保护后,对于处于锁定状态的单元格,不能对其再编辑,可以对解锁状态的单元格再 ...

回复 使用道具 举报
dybxin
中级会员   /  发表于:2024-7-18 18:04:06
4#
本帖最后由 dybxin 于 2024-7-18 18:12 编辑
eat_grape_5 发表于 2024-7-18 17:19
回答第一个问题:开启表单保护后,对于处于锁定状态的单元格,不能对其再编辑,可以对解锁状态的单元格再 ...

关于第一点, 至于用户要选则哪一列,我提前是不知道的,所以应该是做不到提前把这一列解锁,再复制(还是说有人用过类似的场景吗?)。 所以说只能通过register() 重新定义相关的命令来做?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-19 09:37:49
6#
您可以通过注册一个新的命令,在这个命令中先将选中的这一列解锁,或者将整个worksheet的表单保护关闭,等命令即将执行完的时候再将选中的这一列锁定,或者将整个worksheet的表单保护打开。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部