欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue實現excel下載

黃文隆2年前8瀏覽0評論

在前端開發中,Excel是非常常見的數據報表展示方式。然而,傳統的Excel下載方式,需要使用后端提供的接口進行下載,對于前端來說比較麻煩。而Vue在這方面給了我們很大的便利,可以很方便地通過前端實現Excel下載的功能。

首先,在Vue中實現Excel下載功能需要引入一個庫——ExcelJS,這是一個支持現代瀏覽器,node和React Native的Excel操作庫。

npm install exceljs --save

安裝完后,可以在Vue組件中引入exceljs并使用它。

import ExcelJS from 'exceljs';
export default {
data() {
return {
header: [
{ header: 'Name', key: 'name', width: 20 },
{ header: 'Age', key: 'age', width: 10 },
{ header: 'Gender', key: 'gender', width: 10 }
],
data: [
{ name: 'Tom', age: 25, gender: 'Male' },
{ name: 'Lucy', age: 22, gender: 'Female' },
{ name: 'Jack', age: 30, gender: 'Male' }
]
}
},
methods: {
download() {
const workbook = new ExcelJS.Workbook();
const sheet = workbook.addWorksheet('Sheet1');
sheet.columns = this.header;
sheet.addRows(this.data);
workbook.xlsx.writeBuffer().then(buffer =>{
this.saveAsExcel(buffer, 'demo.xlsx');
})
},
saveAsExcel(buffer, fileName) {
const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8' });
const a = document.createElement('a');
const href = window.URL.createObjectURL(blob);
a.href = href;
a.download = fileName;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
window.URL.revokeObjectURL(href);
}
}
}

以上代碼中的header數組,定義了Excel表格的列名;data數組則填充了Excel表格的數據。在download方法中,實例化ExcelJS工作簿,設置表格列和填充數據,最后使用writeBuffer方法將Excel表格數據轉化為二進制數據。

saveAsExcel方法則是用于將Excel表格數據轉化為可下載的文件。在該方法中,使用Blob將數據轉化為二進制數據并設定文件類型,然后創建一個a標簽,設置href和download屬性,并模擬點擊以觸發下載事件,最后移除a標簽并回收資源。

接著,在Vue組件中使用download方法進行下載操作即可。

通過以上代碼,我們就可以非常方便地在Vue中實現Excel表格的下載功能了,不再需要依賴后端接口進行實現了。