
首先需要下載插件 "xlsx": "^0.15.6"
然后在mainjs 當中引入xlsx
並進行全局方法的封裝
import XLSX from 'xlsx'
/**
* @function 生成表格的方法
* @param {String} excelName 文件名
* @param {Array} titleArr 數據表頭顯示
* @param {Array} dataArr 數據內容顯示
*/
const ToDoExcel = (excelName, titleArr, dataArr) => {
var filename = excelName + ".xlsx" //文件名稱
var data = [titleArr, ...dataArr] //數據,一定注意需要時二維數組
var ws_name = "Sheet1" //Excel第一個sheet的名稱
var wb = XLSX.utils.book_new(), ws = XLSX.utils.aoa_to_sheet(data)
XLSX.utils.book_append_sheet(wb, ws, ws_name) //將數據添加到工作薄
XLSX.writeFile(wb, filename)
}
Vue.prototype.$ToDoExcel = ToDoExcel
最后在頁面調用
computed: {
// 定義表頭數據
titleArr() {
let arr = []
this.columns.map((item)=> {
arr.push(item.title)
})
return arr
}
},
methods: {
ToDoExcel() {
// 這里是請求接口 這樣寫的話,一般不傳分頁參數 就會導出全部數據
getOrderInfo()
.then(res => {
console.log(res)
// 定義表格數據
let arr = []
res.map(item => {
arr.push([
item.orderNo,
item.sendNo,
item.statusClothes,
item.idClothes,
])
})
// 調用導出EXCEL的方法
this.$ToDoExcel(`訂單信息`, this.titleArr, arr)
})
}
