问题描述
我有一个使用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--)