找回密码
 立即注册

QQ登录

只需一步,快速开始

spreadjs666
金牌服务用户   /  发表于:2024-2-21 20:32  /   查看:4461  /  回复:15
本帖最后由 Richard.Huang 于 2024-3-22 13:36 编辑

产品:SpreadJS
版本:V16

针对快捷键复制粘贴及右键复制粘贴互通问题,上次语音会议已提出。
此问题曾经提出过,给出的回复是框架无法读写系统剪切板。
经调研:
1、业内表格相关的产品均已实现快捷键与右键打通在跨表格粘贴时,这是一个很普遍的操作,并且能够大幅度提升用户体验。
2、读取command中的html中是包含sjs的标示的。
image.png230490111.png
3、https://cloud.tencent.com/developer/article/1777810 该文章中也已实现使用js读写剪切板的操作。

15 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-2-22 11:05:08
沙发
本帖最后由 Richard.Ma 于 2024-2-22 17:53 编辑

您好,这个问题实际上早前我们已经做过调研。
要支持通过上下文菜单进行外部复制粘贴,是可以使用Clipboard API来实现的,
但是,仍然会存在下面的限制
1.在粘贴文本和html时,部分浏览器限制(FireFox),以及粘贴的样式可能丢失。
2.必须要开启剪贴板访问权限,以及点击提示对话框以允许访问剪切板

spreadjs本身做为一个通用控件而非具体应用产品,在基于上述限制的情况下,目前暂时没有考虑在产品层面添加这个功能,如果添加后,弹出的这个剪切板访问弹窗也会导致老用户困惑

同时,你提到的业内表格相关的产品实际上都是面向最终用户的应用,
这个功能你们也可以通过二次开发实现的。这里提供一个spreadjs粘贴外部内容的示例,
使用里面的相关代码重写一下ribbon和右键菜单中的粘贴按钮即可。

https://jscodemine.grapecity.com ... %2Findex.html%22%7D
回复 使用道具 举报
spreadjs666
金牌服务用户   /  发表于:2024-2-22 14:51:23
板凳
Richard.Ma 发表于 2024-2-22 11:05
您好,这个问题实际上早前我们已经做过调研。
要支持通过上下文菜单进行外部复制粘贴,是可以使用Clipboar ...

您好,您给出的这个网站我这里访问不了,有什么其他方式访问吗?
image.png769751281.png
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-2-22 17:53:27
地板
已经更新链接
回复 使用道具 举报
spreadjs666
金牌服务用户   /  发表于:2024-2-23 14:13:54
5#
本帖最后由 spreadjs666 于 2024-2-23 14:15 编辑

好的,了解了,感谢回复,请问有什么办法修改右键、快捷键复制时的数据吗?想对其进行一些修改再存储到剪切板中。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-2-23 17:58:49
6#
你是可以拿到复制的数据的,比如在ClipboardChanging事件中,在使用右键、快捷键复制时都可以触发,然后在copyData中就能得到了

但是,如果你想要修改存储到剪切板的数据,实际目前也只有在Ctrl+C的时候才会复制,右键并不会(和右键粘贴外部内容一样,需要右键复制到剪切板的话,你也得重写按钮,自己来操作剪切板),
如果你是想修改快捷键复制时,最终剪切板中的数据,也是应该在ClipboardChanging中cancel=true,然后自己看看能否操作剪切板改变其中的数据
回复 使用道具 举报
spreadjs666
金牌服务用户   /  发表于:2024-2-29 19:41:30
7#
Richard.Ma 发表于 2024-2-23 17:58
你是可以拿到复制的数据的,比如在ClipboardChanging事件中,在使用右键、快捷键复制时都可以触发,然后在c ...

感谢您的详细回复,我这还有一些问题希望您能帮忙解答。
请问:
1、spreadJS是如何识别外部粘贴的字体颜色、加粗、斜体、下划线的呢?
2、是如何区分粘贴的是多个单元格还是单个单元格呢?
3、如何识别粘贴进去的<br>标签进行回车展示?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-3-1 12:31:42
8#
1.是通过copyData中的html内容来进行解析的。
2.同上
3.这个<br>是指html中的内容吗?可以截图说明一下
回复 使用道具 举报
spreadjs666
金牌服务用户   /  发表于:2024-3-4 15:57:23
9#
Richard.Ma 发表于 2024-3-1 12:31
1.是通过copyData中的html内容来进行解析的。
2.同上
3.这个是指html中的内容吗?可以截图说明一下

1、有具体规则吗?我看s/em等标签的顺序也有一定要求?
2、我想使用clipboardPaste进行html的粘贴,但是发现这个cmd只可以粘贴text,请问有别的cmd可以调用吗
3、是的,例如:
image.png141605223.png
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-3-4 18:17:01
10#
这个需要内部确认一下,由于涉及到产品内部的实现,不一定能给你提供

2.没有其他的cmd

3.这个就是纯粹对html的解析了,粘贴的时候可以加\r来强制换行
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部