当行中的数据相同时,如何合并单元格?

问题描述

我有一个使用excelJS生成的excel文件,当date字段与此相同时,我必须合并单元格,例如:

 Date | Hours | Total hours
14.10 |   3   |    3
15.10 |   4   |    [THIS CELL MUST BE MERGED WITH CELL BELOW]
15.10 |   1   |    [THIS CELL MUST BE MERGED WITH CELL ABOVE]
17.10 |   8   |    8
19.10 |   5   |    5

A - Date列中的日期与2 and 3行中的日期相同时,我必须合并C - row 2 and 3列中的单元格

我尝试用这种方式做到这一点:

let data = await this.getDataToExcel();

        for(let i=0; i<data.length; i++) {
            if(moment(data[i].date_service).isSame(data[i+1 == data.length ? i-1 : i+1].date_service)){
                workSheet.mergeCells(`C${6+i}:C${7+i}`);
            } 
        }

但它只能在同一日期的2个日期工作,而不能在同一日期的更多日期工作,

有人可以帮我吗?

解决方法

我曾经有一个类似的问题,我从头到尾遍历行并删除了一些行。问题是,在我删除一行之后,由于i继续向上计数,因此跳过了下一行。对我来说,它解决了从下到上遍历行的问题。 所以也许您可以尝试:

for(let i=data.length; i>0; i--)