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人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦