本文主要介紹如何在Vue項目中實現本地XLS文件下載功能。
步驟1:安裝依賴
npm install file-saver xlsx --save
FileSaver.js庫用于創建和下載文件,xlsx庫用于創建Excel文件。
步驟2:在Vue組件中引入所需庫
import ExcelJS from 'xlsx'; import FileSaver from 'file-saver';
這里引入的ExcelJS庫和之前安裝的xlsx庫相同,只是為了方便在Vue組件中使用。
步驟3:創建數據和表頭
data() { return { tableData: [ { id: 1, name: '張三', age: 20 }, { id: 2, name: '李四', age: 18 }, { id: 3, name: '王五', age: 22 } ], header: [ { key: 'id', name: '編號' }, { key: 'name', name: '姓名' }, { key: 'age', name: '年齡' } ] } },
這里只是一個示例,實際使用時可以將tableData和header從API獲取或在組件中動態生成。
步驟4:創建Excel對象,并填充數據和表頭
const wb = ExcelJS.utils.book_new(); const ws = ExcelJS.utils.json_to_sheet(this.tableData); ws['!cols'] = []; for (let i = 0; i< this.header.length; i++) { ws['!cols'].push({ width: 20 }); ws[ExcelJS.utils.encode_cell({ c: i, r: 0 })] = { v: this.header[i].name }; } const range = ExcelJS.utils.decode_range(ws['!ref']); range.s.r = 1; ws['!ref'] = ExcelJS.utils.encode_range(range); ExcelJS.utils.book_append_sheet(wb, ws, 'Sheet1');
第一行填寫表頭,后面的行填寫數據。這里通過修改列寬和對第一行單元格樣式的修改來優化Excel文件的顯示效果。
步驟5:使用FileSaver.js庫創建和下載文件
const wbout = ExcelJS.write(wb, { bookType: 'xlsx', type: 'binary' }); const fileName = 'table-data.xlsx'; const blob = new Blob([s2ab(wbout)], { type: 'application/octet-stream' }); FileSaver.saveAs(blob, fileName);
這里首先使用ExcelJS庫將Excel對象轉化為二進制數據,然后使用FileSaver.js庫創建Blob對象并下載文件。
以上就是Vue中實現本地XLS文件下載的完整步驟,注意在Vue項目中應該根據具體情況來使用不同的庫或方法。希望本文能夠幫助您快速實現這個功能。
上一篇html留言的代碼
下一篇HTML疫情地圖代碼