找回密码
 立即注册

QQ登录

只需一步,快速开始

中智达-

注册会员

7

主题

42

帖子

141

积分

注册会员

积分
141
中智达-
注册会员   /  发表于:2022-10-9 15:33  /   查看:2273  /  回复:9
1金币
报表的区域数据进行复制,粘贴到另一个报表都是可编辑的单元格,最后粘贴后就不能编辑了

1665300762445.png322486876.png 1665300696487.png186712340.png

最佳答案

查看完整内容

跨spread的话无法通过事件获取复制区域单元格信息。 有个思路您可以参考下,自定义命令获取选择(复制)区域,然后将此命令绑定至ctrl+c快捷键,对复制区域进行记录。 下为示例代码,您可以参考下: 另,关于您题目中描述的问题,这边经多场景尝试仍未复现, 为了更快解决您的问题,建议您提供一个可复现demo,这边在代码基础上调研下问题原因。

9 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-9 15:33:17
来自 8#
跨spread的话无法通过事件获取复制区域单元格信息。
有个思路您可以参考下,自定义命令获取选择(复制)区域,然后将此命令绑定至ctrl+c快捷键,对复制区域进行记录。
下为示例代码,您可以参考下:

  1. var command = {
  2.     canUndo: false,
  3.     execute: function (context, options, isUndo) {
  4.         var Commands = GC.Spread.Sheets.Commands;
  5.         if (isUndo) {
  6.             Commands.undoTransaction(context, options);
  7.             return true;
  8.         } else {
  9.             Commands.startTransaction(context, options);

  10.             console.log("do sth");
  11.             var selections = sheet.getSelections();
  12.             // 根据selections可获取到选择(复制区域)的单元格区域信息,可以保存便于后续使用

  13.             Commands.endTransaction(context, options);
  14.             return true;
  15.         }
  16.     }
  17. };

  18. spread.commandManager().register("myCopy", command);
  19. spread.commandManager().setShortcutKey("myCopy", GC.Spread.Commands.Key.c, true, false, false, false);
复制代码
另,关于您题目中描述的问题,这边经多场景尝试仍未复现,

为了更快解决您的问题,建议您提供一个可复现demo,这边在代码基础上调研下问题原因。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-9 17:15:16
2#
您好,
您是将区域复制,粘贴至另一个spread中吗?
这边新建两个spread进行测试,未能复现您的问题,您检查下代码是否做了一些自定义操作:如监听粘贴事件,设置不可编辑等等。
如果问题仍未解决,请提供一个可复现此问题的demo,这边在代码基础上进一步调研问题原因。
回复 使用道具 举报
中智达-
注册会员   /  发表于:2022-10-9 17:52:58
3#
Lynn.Dou 发表于 2022-10-9 17:15
您好,
您是将区域复制,粘贴至另一个spread中吗?
这边新建两个spread进行测试,未能复现您的问题,您检 ...

有没有什么事件可以监听到复制区域的所有单元格数据
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-9 18:04:14
4#
监听ClipboardChanged事件,API如下:
https://demo.grapecity.com.cn/sp ... ts#clipboardchanged
回复 使用道具 举报
中智达-
注册会员   /  发表于:2022-10-10 09:03:40
5#
Lynn.Dou 发表于 2022-10-9 18:04
监听ClipboardChanged事件,API如下:
https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spre ...

这个事件监听不到复制区域的每个单元格的信息
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-10 09:55:20
6#
ClipboardPasted 事件可以监听到复制区域fromRange,但是需在同一个spread中。
API如下:
https://demo.grapecity.com.cn/sp ... nts#clipboardpasted
如1楼所述,您是如何操作复制粘贴的呢?请详细描述下您的操作步骤,并附上可复现的demo,以便问题的进一步调研。
回复 使用道具 举报
中智达-
注册会员   /  发表于:2022-10-10 10:04:45
7#
Lynn.Dou 发表于 2022-10-10 09:55
ClipboardPasted 事件可以监听到复制区域fromRange,但是需在同一个spread中。
API如下:
https://demo.g ...

不是同一个spread,这样子的话我能不能拿到复制区域内所有单元格的信息
回复 使用道具 举报
中智达-
注册会员   /  发表于:2022-10-11 15:30:48
9#
Lynn.Dou 发表于 2022-10-10 14:40
跨spread的话无法通过事件获取复制区域单元格信息。
有个思路您可以参考下,自定义命令获取选择(复制)区 ...

我检查了下写的代码应该是赋值的时候搞错了,没问题了
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-11 17:26:27
10#
问题解决了就好,那本贴就先结贴了,有问题欢迎另开新贴交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部