1.安装相关依赖
npm install --save xlsx file-saver
2.导入相关插件
在组建头部导入相关插件
const FileSaver = require("file-saver") const XLSX = require("xlsx")
3.调用相关的方法
var wb = XLSX.utils.table_to_book(document.querySelector("#tableBox")) var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' }) try { FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), 'sheetjs.xlsx') } catch (e) { if (typeof console !== 'undefined') console.log(e, wbout) }
4.分页的数据导出(方法比较基础, 不知道有没有大神知道更好的办法的,请一定要告诉我哦)
4.1点击下载之后先设置,一个参数ableExportOut为true, 保存好当前页面的数据, 赋值新的数据
4.2单数据赋值成功后,会执行updated这个生命周, 在里面判断ableExportOut是否为true, 然后执行下载表格相关的函数
4.3执行完下载表格之后, 吧就数据赋值回去, 把ableExportOut设为false
updated() { if(this.ableExportOut){ this.exportOut() } }, methods: { // 执行下载 activeExportOut(){ this.ableExportOut = true //设置可以下载 this.oldtableData = this.tableData //保存起就数据 this.tableData = test //赋值新数据 }, //下载表格 exportOut(){ var wb = XLSX.utils.table_to_book(document.querySelector("#tableBox")) var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' }) try { FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), 'sheetjs.xlsx') } catch (e) { if (typeof console !== 'undefined') console.log(e, wbout) } this.ableExportOut = false //设置不可下载 this.tableData = this.oldtableData //回复原来说的数据 return wbout } }