excejsl合并单元格,采用的是字母+数字去合并单元格(例如表格参数.mergeCells(A1:B2)),而实际运用的时候,合并哪一行哪一列可能是动态计算出来的,在此写了一个通用的方法,采用纯数字的方法去合并
/**
* @description 合并单元格
* @param sheet 表格
* @param range 范围
* {
* start: { r: 1, c: 1 }, // 开始单元格 (r: row, c: col) - 从第1行第1列开始
* end: { r: 2, c: 5 } // 结束单元格 (r: row, c: col) - 到第2行第5列结束
* }
* */
function MergeCells(sheet, range) {
let startRow = range['start']['r']; // 合并开始行
let endRow = range['end']['r']; // 合并结束行
let startCell = range['start']['c']; // 合并开始列
let endCell = range['end']['c']; // 合并结束列
let alphabetMap = {
1: 'A',
2: 'B',
3: 'C',
4: 'D',
5: 'E',
6: 'F',
7: 'G',
8: 'H',
9: 'I',
10: 'J',
11: 'K',
12: 'L',
13: 'M',
14: 'N',
15: 'O',
16: 'P',
17: 'Q',
18: 'R',
19: 'S',
20: 'T',
21: 'U',
22: 'V',
23: 'W',
24: 'X',
25: 'Y',
26: 'Z'
};
sheet.mergeCells(`${alphabetMap[startCell]}${startRow}:${alphabetMap[endCell]}${endRow}`);
}
使用实例
// 从第一行第一列,到第二行第二列合并单元格,数字也可变更为一个动态参数
MergeCells(表格参数,{
start:{r:1,c:1},
end:{r:2,c:2},
})