请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

Winny
超级版主   /  发表于:2025-11-28 17:27  /   查看:28  /  回复:0
需求背景:SpreadJS中提供了相同值自动合并,用于完成类似报表工具中的分组聚合功能,但于此同时,客户希望能够像报表工具一样,插入合并分组子项,同时能够获取插入后填写的数据,完成数据持久化逻辑。此时由于对合并逻辑不够清洗,导致无法完成该需求,本文我们来详细介绍下此类需求的实现逻辑。

首先我们来了解一下相同值自动合并的逻辑。其实相当简单,就是spreadjs中封装了一个小算法,帮开发人员完成了相同值检测的逻辑,根据算法定位出合并区域,调用合并api即可。此时用getValue获取被合并区域的每一个单元格值时,得到的都会是一个相同的值。同时,自动合并逻辑也包含了上下文检测,提供了严格合并模式和自由合并模式。而严格合并模式,即在对当前单元格进行合并时,先会检测左边是否是同一个合并区域,如果不是,则认为检测出的区域不属于同一个上下文,即使值相同也不会进行合并。

插入子项我们可以选择自定义右键菜单或自己做一个小按钮,这里为了演示简单,我直接做了一个小按钮,此时点击按钮时,需要完成的逻辑如下:
1.  判断当前区域是否为合并区域,根据返回值定位需要插入行的索引位;
2. 重新设置表格绑定区域大小;
3. 接触原来表格区域的相同值合并逻辑(不解除直接绑定会报区域相交)
4. 执行区域相同值合并;


详细代码见附件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部