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');
    }
复制代码

 

posted @   qi_8080  阅读(178)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示