Vue 匯出 excel
阿新 • • 發佈:2020-12-10
Vue 匯出 excel
// 匯入外掛
- npm install --save xlsx file-saver
// 程式碼部分
<template> <div> <el-button @click="outExcel">匯出excel表格檔案</el-button> <el-table :data="comeData" id="userInfo"> <el-table-column type="index" label="#"> </el-table-column> <el-table-column prop="name" label="姓名"> </el-table-column> <el-table-column prop="password" label="密碼"> </el-table-column> </el-table> </div> </template> <script> // 匯入 匯出功能 import FileSaver from 'file-saver' import XLSX from 'xlsx' export default { data () { return { comeData: [] } }, methods: { async getComeData () { const { data: res } = await this.$http.post('/user/selectAll') this.comeData = res console.log(res) }, // 匯出 outExcel () { var wb = XLSX.utils.table_to_book(document.querySelector('#userInfo')) /* 獲取二進位制字串作為輸出 */ var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' }) try { FileSaver.saveAs( // Blob 物件表示一個不可變、原始資料的類檔案物件。 // Blob 表示的不一定是JavaScript原生格式的資料。 // File 介面基於Blob,繼承了 blob 的功能並將其擴充套件使其支援使用者系統上的檔案。 // 返回一個新建立的 Blob 物件,其內容由引數中給定的陣列串聯組成。 new Blob([wbout], { type: 'application/octet-stream' }), // 設定匯出檔名稱 'sheetjs.xlsx' ) } catch (e) { if (typeof console !== 'undefined') console.log(e, wbout) } return wbout } }, created () { this.getComeData() } } </script> <style lang="less" scoped> </style>