2021-9-13 前端达人
-
npm install file-saver
-
npm install xlsx
-
// vue中导出excel表格模板
-
import FileSaver from 'file-saver'
-
import XLSX from 'xlsx'
-
-
Vue.prototype.$FileSaver = FileSaver; //设置全局
-
Vue.prototype.$XLSX = XLSX; //设置全局
-
<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>
可以看到已经导出
实际工作中导出按钮单独抽离出去做到可以复用才是比较合理的
分享此文一切功德,皆悉回向给文章原作者及众读者.
转自:csdn
免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。
蓝蓝设计( www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 、平面设计服务
蓝蓝设计的小编 http://www.lanlanwork.com