在导出excel表的时候遇到了这个问题,看了一下前面几位老哥的方法
修改一下终于行了,修改后应该可以满足A 到 ZZ,三个就不行了
const sheet = XLSX.utils.aoa_to_sheet(excelHeader); sheet['!merges'] = merges this.addRangeBorder(sheet['!merges'], sheet)
addRangeBorder (range, ws) { // 合并行边框 const cols = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']; range.forEach(item => { for (let i = item.s.c; i <= item.e.c; i++) { const num = Math.floor(i / 26) let cellX = '' if (num < 1) { cellX = cols[i] } else { cellX = cols[num - 1] + cols[i % 26] } for (let k = item.s.r + 1; k <= item.e.r + 1; k++) { if (!Object.keys(ws).includes(cellX + k)) { ws[cellX + k] = { // 这一步很关键,需要让单元格的值存在,才能有边框,没有的话单元格还是没边框 t: 's', v: '', s: { border: { top: { style: 'thin', color: {rgb: '000000'} }, bottom: { style: 'thin', color: {rgb: '000000'} }, left: { style: 'thin', color: {rgb: '000000'} }, right: { style: 'thin', color: {rgb: '000000'} } } } } } } } }) }
效果
记录:2024.2.28