element-ui中table表格导出excel&Excel出现重复表格的解决办法

这篇博客主要介绍了在JavaScript中如何处理含有固定列的表格导出为Excel时出现的重复导出问题。通过使用'file-saver'和'xlsx'库,作者提供了两种方法:一种针对未使用fixed属性的表格,另一种处理使用了fixed属性的表格,以确保正确地一次性导出所有数据。在遇到错误时,代码还包含了错误捕获和日志记录的处理。
摘要由CSDN通过智能技术生成
  1. 安装依赖
npm install --save xlsx file-saver
  1. 引入
import FileSaver from 'file-saver'
import XLSX from 'xlsx'
  1. methods中写方法

情况一:table中没有使用fixed属性

exportExcel() {
  var xlsxParam = { raw: true }; // 导出的内容只做解析,不进行格式转换
  var wb = XLSX.utils.table_to_book(
    document.querySelector("#table_data"),
    xlsxParam
  );

  /* get binary string as output */
  var wbout = XLSX.write(wb, {
    bookType: "xlsx",
    bookSST: true,
    type: "array",
  });
  try {
    FileSaver.saveAs(
      new Blob([wbout], { type: "application/octet-stream" }),
      "售后质量反馈表.xlsx"
    );
  } catch (e) {
    if (typeof console !== "undefined") {
      console.log(e, wbout);
    }
  }
  return wbout;
}

情况二:table使用了fixed属性固定列,导出表格时会出现导出两次的问题

exportExcel() {
   var xlsxParam = { raw: true }
   let fix = document.querySelector(".el-table__fixed");
   let wb;
   if (fix) {
     wb = XLSX.utils.table_to_book(
       document.querySelector("#table_data").removeChild(fix)
     );
     document.querySelector("#table_data").appendChild(fix);
   } else {
     wb = XLSX.utils.table_to_book(document.querySelector("#table_data"),xlsxParam);
   }
   let wbout = XLSX.write(wb, {
     bookType: "xlsx",
     bookSST: true,
     type: "array",
   });

   try {
     FileSaver.saveAs(
       new Blob([wbout], { type: "application/octet-stream" }),
       "xxx.xlsx"
     );
   } catch (e) {
     if (typeof console !== "undefined") console.log(e, wbout);
   }
   
   return wbout;
 }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值