// 比如 key = ‘A’, 则处理后的 行合并字段为 ARowSpan
// 表格数据合并行处理,目前只能处理单个key
// 多个key需要合并时,可以多次调用:combineRow('regionName', combineRow('unitName', tableData))
function combineRow(key: string, sourceData: any[]) {
const tableData = [...sourceData];
for (var i = 0; i < tableData.length; i++) {
const item = tableData[i];
let count = 1;
for (let j = i + 1; j < tableData.length; j++) {
// 如果是同一个值,往后递增
if (item[key] === tableData[j][key]) {
count++; // 往后相同的值都设为空单元格
tableData[j][`${key}RowSpan`] = 0; // 只有同值第一个才设置合并的单元格数
item[`${key}RowSpan`] = count; // 所有都是为同一个值的情况 // 如果到了尾部,则循环结束
if (j === tableData.length - 1) {
return tableData;
}
} else {
// 指针跳转到下一个,从下一排开始
i = j - 1;
count = 1;
tableData[j][`${key}RowSpan`] = 1;
break;
}
}
}
return tableData;
}
Table 合并单元格
于 2023-04-14 12:44:17 首次发布