elementui导出数据为xlsx、excel表格
时间:2022-01-11 10:30:12|栏目:vue|点击: 次
最近学习vue项目,遇见elementui导出数据为xlsx、excel表格,今天就介绍给大家,也给自己留个笔记,方便查询
我这里为了同学们好理解,把所有元素都写到一个页面。
1.第一步安装插件
npm install file-saver npm install xlsx
2.第二步在mian.js中设置全局
// vue中导出excel表格模板 import FileSaver from 'file-saver' import XLSX from 'xlsx' Vue.prototype.$FileSaver = FileSaver; //设置全局 Vue.prototype.$XLSX = XLSX; //设置全局
3.第三步使用
<template> <div class="daochu"> <el-button @click="o" type="success" round>导出</el-button> <el-table id="ou" :data="tableData" style="width: 100%" :default-sort="{ prop: 'date', order: 'descending' }" > <el-table-column prop="date" label="日期" sortable width="180"> </el-table-column> <el-table-column prop="name" label="姓名" sortable width="180"> </el-table-column> <el-table-column prop="address" label="地址" :formatter="formatter"> </el-table-column> </el-table> </div> </template> <script> export default { data() { return { tableData: [ { date: "2016-05-02", name: "王小虎", address: "上海市普陀区金沙江路 1518 弄", }, { date: "2016-05-04", name: "王小虎", address: "上海市普陀区金沙江路 1517 弄", } ], }; }, methods:{ o() { let tables = document.getElementById("ou"); let table_book = this.$XLSX.utils.table_to_book(tables); var table_write = this.$XLSX.write(table_book, { bookType: "xlsx", bookSST: true, type: "array", }); try { this.$FileSaver.saveAs( new Blob([table_write], { type: "application/octet-stream" }), "sheetjs.xlsx" ); } catch (e) { if (typeof console !== "undefined") console.log(e, table_write); } return table_write; }, } } </script>
可以看到已经导出
实际工作中导出按钮单独抽离出去做到可以复用才是比较合理的