找回密码
 立即注册

QQ登录

只需一步,快速开始

ch.yang

注册会员

2

主题

8

帖子

126

积分

注册会员

积分
126
最新发帖

[已处理] Spreadjs 剪切问题

ch.yang
注册会员   /  发表于:2019-12-2 10:49  /   查看:2961  /  回复:5
本帖最后由 ch.yang 于 2019-12-2 10:56 编辑

我想实现的效果是,在粘贴和剪切时,不要cell样式,只进行值的拷贝和剪切。复制源可能是spreadjs也可能是Excel。
我找到了一个叫clipBoardOptions的属性,设置为GC.Spread.Sheets.ClipboardPasteOptions.values后,copy确实好用了。
但是剪切时还是会带样式。并且剪切时我也是只想做剪切值,不带样式的。

我想知道怎样做才能在剪切时也不带样式。

附件中我提供了ssjson,直接用浏览器打开index.html,上传template.ssjson。

demo.zip

776.05 KB, 阅读权限: 150, 下载次数: 1

例子

5 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-12-2 13:53:29
沙发
您好,这个问题实际上是这样:

剪贴操作,SpreadJS默认是不受clipBoardOptions属性影响的,也就是说,您在剪贴内容时,源区域的内容以及格式都会被清空,那么目标区域会得到源区域的内容以及样式。

如果想自己实现,也比较困难,因为无论是采用自定义命令、或clipboardPasting事件,都有一个问题,就是无法获取源区域的大小(因为选中的是目标区域)。

我们想了解一下您具体的应用场景,为什么一定要限制剪贴操作的方式呢?可不可以直接禁用剪贴,让用户只走复制?
回复 使用道具 举报
ch.yang
注册会员   /  发表于:2019-12-2 14:20:01
板凳
谢谢回复。

我附件中的ssjson实际上是一个模板,如果样式可以被随意拷贝,我的客户觉得这样不太好。样式乱了之后虽然可能不会引起程序崩溃,但是就是觉得不好,既然copy可以按值copy,那么剪切应该也可以,但我们试了之后发现不是我们想象这样的,客户又不死心,所以上来问问。

如你所说这个问题解决起来比较麻烦,你建议用复制代替剪切呗。
像如下这么写就行呗?
spread.commandManager().setShortcutKey('copy', GC.Spread.Commands.Key.x, true, false, false, false)
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-12-2 16:22:21
地板
您好,感谢您耐心的解释。

实际上我推荐的就是您给出的方案。

如果您的最终用户觉得使用Ctrl+X与Ctrl+C的效果一样很奇怪的话,也可以直接把这个快捷键的功能设置为null,可以达到直接禁用的效果。

spread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.x, true, false, false, false)
回复 使用道具 举报
ch.yang
注册会员   /  发表于:2019-12-2 16:32:30
5#
KevinChen 发表于 2019-12-2 16:22
您好,感谢您耐心的解释。

实际上我推荐的就是您给出的方案。

好的,我知道了,谢谢啦
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-12-2 18:00:07
6#
不客气,谢谢反馈,帖子我结贴了,有新的问题欢迎发新帖交流~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部