xiaolong 发表于 2024-4-29 14:54:57

关于合并单元格

wijmo能做到这种程度的合并吗,需要按照5个层级依次去合并单元格,如果可以的话麻烦帮忙写个类似的demo

Richard.Ma 发表于 2024-4-29 14:54:58

这个在线demo中看,是对比了当前列和上一列的单元格值是否一致,以此决定单元格是否向上向下合并,

你的需求实际上是对比当前单元格左侧所有列的对应单元格值都是否一致,都一致才向上向下合并,因此,可以做如下改写

RestrictedMergeManager.prototype.getMergedRange = function(p, r, c, clip) {
                        if(clip === void 0) {
                                clip = true;
                        }
                        var rng = null;
                        rng = new wjGrid.CellRange(r, c);
                       
                        var pcol = c > 0 ? c - 1 : c;
                        var val = p.getCellData(r, c, false);
                        var pval = p.getCellData(r, pcol, false);
                        var array = [];
                        for(let j = 0; j <= c; j++) {
                                array.push(j);
                        }
                        while(
                                rng.row > 0 &&
                                array.every(
                                        (col) =>
                                        p.getCellData(rng.row - 1, col, false) == p.getCellData(rng.row, col, false)
                                )
                        ) {
                                rng.row--;
                        }
                        while(
                                rng.row2 < p.rows.length - 1 &&
                                array.every(
                                        (col) =>
                                        p.getCellData(rng.row2 + 1, col, false) == p.getCellData(rng.row2, col, false)
                                )
                        ) {
                                rng.row2++;
                        }
                       

                        if(rng.isSingleCell) {
                                rng = null;
                        }
                        return rng;
                };

Richard.Ma 发表于 2024-4-29 17:38:50

本帖最后由 Richard.Ma 于 2024-5-6 10:13 编辑

你需要的是Restricted Merging

可以参考这个demo
https://demo.grapecity.com.cn/wi ... ictedMerging/purejs

拖动1,2列的列头,切换2列,就能直观看到你需要的效果了:仅当上一列中的单元格包含相同的值时,才垂直合并单元格


xiaolong 发表于 2024-4-29 18:25:40

Richard.Ma 发表于 2024-4-29 17:38
你需要的事故Restricted Merging

可以参考这个demo

似乎不满足,需要按照层级判断,前几层有一个数据不满足,哪怕数据一样也不能合并

Richard.Ma 发表于 2024-4-30 10:54:18

你截图里面我没有看出来有什么问题,“编辑”没有合并是由于前一列数据不同

如果你是需要完全自定义合并的话,参考这个就行,自己添加合并单元格
https://demo.grapecity.com.cn/wijmo/demos/Grid/Merging/CustomMerging/purejs

xiaolong 发表于 2024-4-30 12:21:29

Richard.Ma 发表于 2024-4-30 10:54
你截图里面我没有看出来有什么问题,“编辑”没有合并是由于前一列数据不同

如果你是需要完全自定义合并 ...

这个是依据发的链接最终完成的样子,这个只是我希望最终得到的样子。压根就没有因为前一列的数据不同不合并啊

Richard.Ma 发表于 2024-4-30 15:21:29

你可以上传一个复现问题的demo,我帮你看看是什么原因
页: [1]
查看完整版本: 关于合并单元格