找回密码
 立即注册

QQ登录

只需一步,快速开始

360bid

中级会员

87

主题

268

帖子

825

积分

中级会员

积分
825
360bid
中级会员   /  发表于:2022-9-30 15:40  /   查看:1148  /  回复:6
1金币
本帖最后由 360bid 于 2022-9-30 15:47 编辑

有个需求简单描述一下: 获取一个区域的值然后复制粘贴到另一个区域



我的实现是先在剪切板里面获取到数据再用 setArray()  设置,
image.png898486328.png

这样就有一个问题 我获取到的都是字符类型的数据 所以设置上去也是字符,这样数值类型的就出现问题了,


我想知道 用户在Excel里面复制的数据 ,在spreadjs里面粘贴的时候是如何分辨数据类型的?(我就是在模拟这个操作)

最佳答案

查看完整内容

spreadJS的剪切有一套自己的逻辑,如果您想获取元数据,这边建议通过formRange或者cellRange获取行列数据,然后通过sheet.getValue()获取

6 个回复

倒序浏览
最佳答案
最佳答案
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-9-30 15:40:59
来自 5#
spreadJS的剪切有一套自己的逻辑,如果您想获取元数据,这边建议通过formRange或者cellRange获取行列数据,然后通过sheet.getValue()获取
  1. sheet .bind(GC.Spread.Sheets.Events.ClipboardPasted, function (sender, args) {
  2.     console.log(args);
  3.     console.log(args.fromSheet.getValue(args.cellRange.row,args.cellRange.col))
  4. });
复制代码


回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-30 16:31:44
2#
获取一个区域你可以用getAarray获取,拿到的数组中是可以区分数字和字符的,不会都是数字,如下图
image.png979667053.png

设置时setArray来直接设置这个数组的话,那么数据类型不会变化的,原来的是什么还是什么

如果你是想要获取其中的数据类型的话,也可以自己获取
image.png412006224.png
回复 使用道具 举报
360bid
中级会员   /  发表于:2022-9-30 16:58:10
3#
我的需求是想要自定义粘贴操作,所以数据得从剪切板获取
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-30 18:12:10
4#
哦哦, 抱歉,没有搞清楚,你是从excel中复制的数据,这个目前没有办法判断类型,或者说本身获取到的也都是文本(包括html中也没法区分)

spreadjs粘贴的时候,应该会判断一个字符串如果是纯数字的话,作为数字来设置(不加引号),所以不管一个数字再excel中是以数字还是文本的方式存储的,粘贴后都是数字
回复 使用道具 举报
360bid
中级会员   /  发表于:2022-10-8 11:02:55
6#
Richard.Ma 发表于 2022-9-30 18:12
哦哦, 抱歉,没有搞清楚,你是从excel中复制的数据,这个目前没有办法判断类型,或者说本身获取到的也都是 ...

好的  我明白了  我这边也是这样处理的
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-10-8 17:45:20
7#
那本贴就先结贴了,有问题欢迎另开新帖交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部