找回密码
 立即注册

QQ登录

只需一步,快速开始

lin123

最新发帖
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-26 18:13:47
27#
因为spreadjs又两套复制粘贴,分别对应内部和外部的复制,ctrl+c ctrl+v走的是外部复制逻辑(当然外部复制也可以复制spreadjs内部之间的内容),菜单的复制粘贴走的是内部复制粘贴的逻辑。这块我需要调研一下,明天给您回复。
回复 使用道具 举报
lin123
中级会员   /  发表于:2018-3-26 17:26:08
26#
本帖最后由 lin123 于 2018-3-26 17:31 编辑
ClarkPan 发表于 2018-3-23 18:56
参考:
我这边测试是可以的啊,参考demo
然后您可以获取到范围了,然后遍历其中的单元格通过getCellType方 ...

打印出args的属性后,发现右键没得到text的值
sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, function (sender, args) {
      console.log("ClipboardPasting"+args.pasteData+"\n text="+JSON.stringify(args));
  });

整体的图

整体的图

放大后的,第一个有数值,第二个没有

放大后的,第一个有数值,第二个没有

第二个右键黏贴

第二个右键黏贴
回复 使用道具 举报
lin123
中级会员   /  发表于:2018-3-26 11:21:37
25#
本帖最后由 lin123 于 2018-3-26 16:11 编辑
ClarkPan 发表于 2018-3-23 18:56
参考:
我这边测试是可以的啊,参考demo
然后您可以获取到范围了,然后遍历其中的单元格通过getCellType方 ...

在黏贴的时候,键盘CTRL+v黏贴获取到text的值,而右键选择黏贴,获得的text确是空值?这是什么情况?

sheet.bind(GC.Spread.Sheets.Events.ClipboardPasted, function (sender, args) {
console.log("ClipboardPasted"+args.pasteData+"\n text="+args.pasteData.text);
});
sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, function (sender, args) {
console.log("ClipboardPasting"+args.pasteData+"\n text="+args.pasteData.text);
  });



1.png
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-23 18:56:41
24#
参考:
我这边测试是可以的啊,参考demo
然后您可以获取到范围了,然后遍历其中的单元格通过getCellType方法可以获取到单元格类型,进行判断,至于依据什么样的逻辑进行判断那由您通过代码来决定。

getRange.html

1.33 KB, 下载次数: 200

回复 使用道具 举报
lin123
中级会员   /  发表于:2018-3-23 18:25:37
23#
ClarkPan 发表于 2018-3-23 18:04
更改黏贴的值,这个做不到的,因为剪切板的数据是无法变动的。只能取出来比对,但是无法进行修改

好吧,那有没有办法在ClipboardPasting监听里面获取到黏贴单元格的cellType,
var cellRange = args.cellRange;
   var col = cellRange.col;
直接写取到的是空值,
在里面怎么获取单元格类型?这样我就可以比较他是不是我那个NumberCellType,然后就可以处理判断了

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-3-23 18:04:20
22#
更改黏贴的值,这个做不到的,因为剪切板的数据是无法变动的。只能取出来比对,但是无法进行修改
回复 使用道具 举报
lin123
中级会员   /  发表于:2018-3-23 10:37:26
21#
ClarkPan 发表于 2018-3-23 09:42
您用的是哪个版本的SpreadJS,我在V11版本中试了,没有问题啊,这个是我通过debug调试出来取值的结果,这样 ...

现在已实现:
1、复制单元格直接黏贴,出现D4这样,(不想要这样的结果,应该只留下数字)

2、复制单元格,点击进入编辑,在黏贴,出现D5这样,(这个是对的)

3、监听黏贴事件怎么改黏贴的值?(这个是重点,解决了应该就能实现最初想要的结果了)

1.png
回复 使用道具 举报
lin123
中级会员   /  发表于:2018-3-23 10:21:26
20#
ClarkPan 发表于 2018-3-23 09:42
您用的是哪个版本的SpreadJS,我在V11版本中试了,没有问题啊,这个是我通过debug调试出来取值的结果,这样 ...

你好,你这个model看了,有些地方没有影响到需要的功能,所以我去掉了。
请看一下我这个版本的,最下面的监听需要改变黏贴版里的值怎么弄?

only_number_test.zip

1.38 KB, 阅读权限: 150, 下载次数: 0

回复 使用道具 举报
lin123
中级会员   /  发表于:2018-3-23 09:45:21
19#
本帖最后由 lin123 于 2018-3-23 09:48 编辑
ClarkPan 发表于 2018-3-23 09:42
您用的是哪个版本的SpreadJS,我在V11版本中试了,没有问题啊,这个是我通过debug调试出来取值的结果,这样 ...

在监听里面能知道值
var pastedText = args.pasteData.text;
但有没有办法改这个值,然后在黏贴
回复 使用道具 举报
lin123
中级会员   /  发表于:2018-3-23 09:45:20
18#
ClarkPan 发表于 2018-3-23 09:42
您用的是哪个版本的SpreadJS,我在V11版本中试了,没有问题啊,这个是我通过debug调试出来取值的结果,这样 ...

不是要取消黏贴,是要改黏贴版里的值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部