找回密码
 立即注册

QQ登录

只需一步,快速开始

Nikluas

注册会员

2

主题

5

帖子

15

积分

注册会员

积分
15
  • 51

    金币

  • 2

    主题

  • 5

    帖子

最新发帖
Nikluas
注册会员   /  发表于:2021-9-22 14:46  /   查看:2016  /  回复:8
10金币
如图
image.png322849425.png
当我鼠标框选了蓝色区域的单元格,问题来了,怎么获取虚线整个连续区域的坐标(即row, col, rowCount, colCount),单纯遍历的话,大数据量的情况下是否存在性能问题。这块区域就是标题说的连续数据区域

最佳答案

查看完整内容

SpreadJS不支持自动扩展选定区域的功能,所以没有接口可以直接获取到 扩展的选择区域信息。 有个思路您可以参考下: 在进行排序时,可以获取到选择单元格的区域信息,遍历此单元格周围的单元格是否为空,如果不为空则作为扩展区域,记录扩展区域的行列信息。 (这边在Excel大致测试了下,选择单元格的相邻单元格有值时会作为扩展区域) 不过Excel是按照什么样的规则去判断周边单元格为扩展区域,这属于Excel的内部机制,这 ...

8 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-9-22 14:46:42
来自 7#
SpreadJS不支持自动扩展选定区域的功能,所以没有接口可以直接获取到 扩展的选择区域信息。

有个思路您可以参考下:
在进行排序时,可以获取到选择单元格的区域信息,遍历此单元格周围的单元格是否为空,如果不为空则作为扩展区域,记录扩展区域的行列信息。
(这边在Excel大致测试了下,选择单元格的相邻单元格有值时会作为扩展区域)

不过Excel是按照什么样的规则去判断周边单元格为扩展区域,这属于Excel的内部机制,这边也未能了解,需要您自行调研下。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-9-22 15:33:50
2#
您好,
您截图所示的虚线区域是执行 复制 操作产生的吗?
SpreadJS没有直接获取虚线区域的接口,
您可以监听 ClipboardChanged 事件,获取选择区域并保存,以此实现获取虚线区域信息。

示例代码:
sheet.bind(GC.Spread.Sheets.Events.ClipboardChanged, function (sender, args) {
    var range = args.sheet.getSelections()[0];
    console.log(range);
});
image.png445602416.png
回复 使用道具 举报
Nikluas
注册会员   /  发表于:2021-9-22 15:38:33
3#
我只是用虚线标记了一下这块连续数据区域,关注点不在虚线……
回复 使用道具 举报
Nikluas
注册会员   /  发表于:2021-9-22 15:43:37
4#
Lynn.Dou 发表于 2021-9-22 15:33
您好,
您截图所示的虚线区域是执行 复制 操作产生的吗?
SpreadJS没有直接获取虚线区域的接口,

关注点不在虚线,虚线只是我截图的时候标记出来便于你们理解,我是想获取那一坨连续不间断的区域……目的是为了做《扩展选定区域》排序的功能
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-9-22 17:01:13
5#
"当我鼠标框选了蓝色区域的单元格,问题来了,怎么获取虚线整个连续区域的坐标(即row, col, rowCount, colCount),"

选择的蓝色区域 与您标记的虚线区域 有什么关联关系吗?
事实上,获取某一个区域信息是与行为挂钩的,
比如选择一片区域,复制一片区域等,这样才能通过接口找到这片区域,获取区域信息。
不然无法得知您想要的是哪一片区域。
您虚线标记的区域是否与一些行为关联呢?请结合业务情况详细的描述下您的需求。
回复 使用道具 举报
Nikluas
注册会员   /  发表于:2021-9-22 17:22:01
6#
Lynn.Dou 发表于 2021-9-22 17:01
"当我鼠标框选了蓝色区域的单元格,问题来了,怎么获取虚线整个连续区域的坐标(即row, col, rowCount, col ...

file:///C:/Users/19056620/Desktop/paixu1111.png paixu1111.png
选择蓝色区域,点击排序,选择扩展选定区域,会按照红色区域(这个红色区域就是上面问题提到的虚线区域)进行排序,我想获取红色区域的row,col,rowCount,colCount作为sortRange的入参
回复 使用道具 举报
西奥林
注册会员   /  发表于:2024-3-21 11:35:35
8#
Nikluas 发表于 2021-9-22 17:22
选择蓝色区域,点击排序,选择扩展选定区域,会按照红色区域(这个红色区域就是上面问题提到的虚线区域 ...

版主没有跟进这个需求了么?我们也想实现自动扩选连续的区域
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-3-21 16:37:56
9#
西奥林 发表于 2024-3-21 11:35
版主没有跟进这个需求了么?我们也想实现自动扩选连续的区域

您好,目前SpreadJS不支持自动扩展选定区域的功能,也没有相关接口去直接获取到扩展区域的信息,如果有新问题,建议发新帖提问,旧的帖子容易出现跟进遗漏的情况
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部