找回密码
 立即注册

QQ登录

只需一步,快速开始

拾趣ヾ
金牌服务用户   /  发表于:2023-11-11 15:23  /   查看:4183  /  回复:18
本帖最后由 Ellia.Duan 于 2023-12-1 16:31 编辑

产品:SpreadJS
版本:v16.1.0
问题编号:SJS-21213

https://demo.grapecity.com.cn/SpreadJS/WebDesigner/index.html上传一张浮动图片,快捷键复制该图片,此时从外部(通过截图工具或者微信截图工具快捷键)截一张图存入系统剪切板,粘贴的时候只出来框架的图片,没有粘贴出系统快捷键的图片,咱们有解决方案嘛

评分

参与人数 1金币 +500 收起 理由
Ellia.Duan + 500

查看全部评分

18 个回复

倒序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-11-13 11:17:14
沙发
您好,这个问题涉及到了两个剪切板,一个是SpreadJS内部的剪切板,一个是操作系统的剪切板。在SpreadJS复制图片后,再去外部复制内容SpreadJS的机制是优先处理内部的剪切板,所以粘贴出来的是图片。
您可以在工作簿复制图片后或在外部内容粘贴前,利用Esc键清除Spread剪切板的中的内容再进行粘贴
回复 使用道具 举报
拾趣ヾ
金牌服务用户   /  发表于:2023-11-13 14:12:16
板凳
本帖最后由 拾趣ヾ 于 2023-11-13 16:31 编辑

这个问题咱们有具体解决方案嘛,对上面的描述我有三点疑问。
问题1:工作簿复制图片后清除spread剪贴板,连续粘贴会有影响嘛。
问题2:在外部内容粘贴前,如何能知道是外部粘贴呢。
问题3:对于Esc键清除Spread剪切板的中的内容,咱们有API嘛
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-11-13 16:32:03
地板
您好,
关于问题一是否可以详细描述下,或者录个动图上来
问题二 ,spread有一个ClipboardChanged事件,当剪切板发生变化时可以触发此事件。
上述操作中,”此时从外部(通过截图工具或者微信截图工具快捷键)截一张图存入系统剪切板“此操作并不会触发ClipboardChanged事件。
当执行ctrl+v时,直接获取内部剪切板的图片。
spread.bind(GC.Spread.Sheets.Events.ClipboardChanged, function (sender, args) {
    console.log("ClipboardChanged.", args);
});
我们将深入调研下此原因,待有进展,会及时联系您。
回复 使用道具 举报
拾趣ヾ
金牌服务用户   /  发表于:2023-11-13 17:02:15
5#
好的,等待咱们的好消息
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-11-13 18:02:56
6#
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-11-29 17:08:26
7#
本帖最后由 AlexZ 于 2024-2-5 09:50 编辑

您好,调研后发现上述问题“先粘贴SpreadJS的图片,再粘贴外部图片。此时复制后,发现是外部图片” 目前属于Design , 建议您使用Esc键取消粘贴SpreadJS的图片的行为后,再去复制外部图片。
回复 使用道具 举报
拾趣ヾ
金牌服务用户   /  发表于:2023-11-29 17:28:47
8#
请看第一条评论
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-11-29 18:09:06
9#
关于问题一是否可以详细描述下,或者录个动图上来。不太明白您的连续粘贴是粘贴内部图片还是外部图片?
问题二 ,您的问题是想问,如何确定是内部粘贴,还是外部粘贴吗?
内部粘贴会触发ClipboardChanged事件,此时内部剪切板发生变化,新增了一条。
如果是外部粘贴,会触发系统剪切板。
如果发现内部剪切板和外部剪切板不一致,可以执行Esc,
问题三:
目前没有相关API,需要调研下如何清除剪切板中的内容,关于这点会尽快回复您。

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-11-30 09:16:48
10#
您好,关于第三点,您可以执行下面的代码取消剪切板内容
spread.commandManager().execute({cmd:"cancelInput", sheetName:spread.getActiveSheet().name()});
可以参考下面的动图:

粘贴.gif
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部