js导出excel文件

主要代码

export const tableToExcel = (jsonData, header) => {
  // 循环遍历,每行加入tr标签,每个单元格加td标签
  for (let i = 0; i < jsonData.length; i++) {
    header += "";
    for (const key in jsonData[i]) {
      // 增加\t为了不让表格显示科学计数法或者其他格式
      header += `${jsonData[i][key] + "\t"}`;
    }
    header += "";
  }
  // Worksheet名
  const worksheet = jsonData[0].deptName;
  const uri = "data:application/vnd.ms-excel;base64,";

  // 下载的表格模板数据
  const template = `
        
        ${header}
`; // 下载模板 const link = document.createElement("a"); link.href = uri + base64(template); // 对下载的文件命名 link.download = `${worksheet}.xlsx`; link.click(); }; // 输出base64编码 const base64 = (s) => window.btoa(unescape(encodeURIComponent(s)));

调用方法

      const auditList = ["逻辑性审核", "合理性审核", "核实性审核"];
      const tableStr =
        "公司名称所在报表公式编码审核类型公式说明提示内容出错说明";
      const exportJson = this.errorList.map((item) => {
        const obj = {};
        let theReport = null;
        item.Row.forEach((item1) => {
          theReport = theReport
            ? theReport + ","
            : " " + item1.moduleCode + item1.moduleName;
        });
        obj["deptName"] = item.deptName;
        obj["theReport"] = theReport;
        obj["code"] = item.Code;
        obj["auditType"] = auditList[item.AuditType];
        obj["error"] = item.error;
        obj["formula"] = item.Formula;
        obj["errorMsg"] = item.errorMsg;
        return obj;
      });
      tableToExcel(exportJson, tableStr);

你可能感兴趣的:(js导出excel文件)