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

