因为在element 中表格是使用el-table的形式通过数据来支撑结构,所以,表格的样式没有自己写的灵活,所以有了没法添加按钮的烦恼。下面是解决的方法。
准备工作:
一.下载npm安装包两个
1.npm install --save xlsx file-saver
二.在要下载表格的页面引入依赖
1. import FileSaver from 'file-saver'
2. import XLSX from 'xlsx'
三.在页面中利用element 添加表格,并在表头中具体要添加按钮的地方引入
3235 并且添加render-header 以便在后面的methods中添加按钮样式和结构的调整。
1 2//单独的导出按钮,不放到表头总的做法。 3 43821 25 3730 31 下面这条是插入的按钮占的坑,通过render-header插入模版32 35 36
1 // 导出功能 2 exportExcel() { 3 console.log(123) 4 /* generate workbook object from table */ 5 var wb = XLSX.utils.table_to_book(document.querySelector('#out-table')) 6 /* get binary string as output */ 7 var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' }) 8 try { 9 FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), 'sheetjs.xls')10 } catch (e) { if (typeof console !== 'undefined') console.log(e, wbout) }11 return wbout12 },13 renderHeader() {14 return (15//其中的这个oclick一定要用箭头函数来表示,不然会出现触发不了,可能在其他事件中被无数次触发的反人类现象。(我也很好奇)1618 )19 }this.exportExcel()}>导出表格 17
补充:导出按钮可以放到其他一个单独的地方,也可以实现导出效果,要放到表头中,就必须要使用onclick并且要用箭头函数,重点强调!!!