js前端通过xlsx 实现带单元格合并的excel导出
tableToExcelWithMerge(rows) { const This = this; let jsonData = This.formatExcelData(rows); console.log("dwadwa",jsonData) // 创建工作簿 const wb = XLSX.utils.book_new(); // 转换数据为工作表 const ws = XLSX.utils.aoa_to_sheet(jsonData); // 设置单元格合并 ws['!merges'] = [{ s: { r: jsonData.length - 1, c: 1 }, e: { r: jsonData.length - 1, c: jsonData[0].length - 2 }}]; // 添加样式 /* 遍历ws['!rows']或ws['!cols']来设置列宽、行高,以及ws['A1']等单元格来设置字体颜色等 注意:具体的样式设置较为复杂,需参考库文档 */ ws['!cols'] = [ { wch: 20 }, // 第一列宽度 { wch: 30 }, // 第二列宽度 { wch: 50 }, // 第三列宽度 { wch: 50 }, // 第四列宽度 { wch: 15 }, // 第四列宽度 ]; // 添加工作表到工作簿 XLSX.utils.book_append_sheet(wb, ws, 'Sheet1'); // 导出Excel文件 const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' }); function s2ab(s) { const buf = new ArrayBuffer(s.length); const view = new Uint8Array(buf); for (let i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF; return buf; } FileSaver.saveAs(new Blob([s2ab(wbout)], { type: '' }), '接入单位对账.xlsx'); }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步