为了账号安全,请及时绑定邮箱和手机立即绑定

js将element的table表导出为excel

直接上代码

<el-table
   :data="item.data"
   cell-class-name="itemTd"
   row-class-name="itemRow"
   style="width: 100%"
>
   <el-table-column prop="name" :label='"sku名称" + "(" + item.name + ")"'></el-table-column>
   <el-table-column prop="sales" label="必笔数" width="150"></el-table-column>
   <el-table-column prop="value" width="150" label="笔数占比(%)"></el-table-column>
</el-table>

<a id="downland">导出全部</a>


 只要左边的表格就行了

因为vue渲染dom需要一定的时间所以不能直接定义先下载的表格因为获取不到table标签,所以我将js的操作放到了setTimeout中
element的表格中表头和表单是分开的所以还需要对表单数据进行拼接。

setTimeout(function() {
  let str = null
  for(let i = 0;i < document.getElementsByTagName("table").length;i++) {
     str = str + document.getElementsByTagName("table")[i].outerHTML
  }
  var html = "<html><head><meta charset='utf-8' /></head><body>" + str + "</body></html>";
  // 实例化一个Blob对象,其构造函数的第一个参数是包含文件内容的数组,第二个参数是包含文件类型属性的对象
  var blob = new Blob([html], { type: "application/vnd.ms-excel" });
  var a = document.getElementById("downland");
  // 利用URL.createObjectURL()方法为a元素生成blob URL
  a.href = URL.createObjectURL(blob);
  // 设置文件名
  a.download = "商品sku统计.xls";
},50)

成果:


 


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消