找回密码
 立即注册

QQ登录

只需一步,快速开始

mmm223

金牌服务用户

11

主题

34

帖子

107

积分

金牌服务用户

积分
107
mmm223
金牌服务用户   /  发表于:2024-7-9 10:06  /   查看:476  /  回复:5
本帖最后由 Ellia.Duan 于 2024-7-24 15:11 编辑

我选择复制内容的是否跨行复制,就复制不过去了

websocket传输message如下


  1. <div>const fromRanges = args.command.fromRanges
  2. const pastedRanges = args.command.pastedRanges


  3. sendMsg.data = {
  4.         cmd: "clipboardPaste",
  5.         sheetName: search.gridKey,
  6.         fromRanges,
  7.         pastedRanges,
  8.         isCutting: false,
  9.         clipboardText: args.command.clipboardText ?? clipBoardTextRef.current
  10.       }
  11. </div>
复制代码


接收方代码应用代码如下,就是最基础的粘贴命令嘛
  1. commandMgr.execute({ ...chunkData.data, fromSheet: sheet, pasteOption: GC.Spread.Sheets.ClipboardPasteOptions.all })
复制代码

方如果只是正常的复制粘贴是可以的,但是隔行就不生效了


动图如下

iShot_2024-07-09_10.04.24.gif

5 个回复

倒序浏览
eat_grape_5
中级会员   /  发表于:2024-7-9 10:25:23
沙发
其实是支持跨行复制了,复制时允许跨越连续行列,复制动作将这些非连续空间的内容按照原来的相对位置整合成连续内容,在粘贴时呈现的效果便是连续的。楼主的功能诉求应该是跨行复制后粘贴保留复制前结构,这个暂时不支持,使用发现Excel的跨行复制后粘贴功能也是如此。
回复 使用道具 举报
mmm223
金牌服务用户   /  发表于:2024-7-9 10:29:10
板凳
eat_grape_5 发表于 2024-7-9 10:25
其实是支持跨行复制了,复制时允许跨越连续行列,复制动作将这些非连续空间的内容按照原来的相对位置整合成 ...

遵循excel我觉得没什么问题,问题是我隔行复制粘贴就没有办法在另一边同步这个操作,但是假如是连续的复制粘贴,就可以同步
回复 使用道具 举报
mmm223
金牌服务用户   /  发表于:2024-7-9 10:51:10
地板
经过验证是fromRanges在传输后解析成了普通的对象,需要再次包装成Range对象
回复 使用道具 举报
eat_grape_5
中级会员   /  发表于:2024-7-9 11:00:59
5#
mmm223 发表于 2024-7-9 10:51
经过验证是fromRanges在传输后解析成了普通的对象,需要再次包装成Range对象

原来是这样,那就ok了。
我刚才还想了个曲线救国的方案:用ClipboardPasting或ClipboardPasted事件监听跨行复制,发现跨行复制时会触发多次事件,事件次数等于所跨区域个数,从事件中获取跨行的每个分区的数据,然后再自定义将其组织传给协同的另一方。
当然这个方案比较绕道,好在原生API已经支持了。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-9 13:36:56
6#
mmm223 发表于 2024-7-9 10:51
经过验证是fromRanges在传输后解析成了普通的对象,需要再次包装成Range对象

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部