vue3+elementPlus項(xiàng)目支持設(shè)置默認(rèn)附件方式
背景
我們項(xiàng)目中的需求經(jīng)常會有跳轉(zhuǎn)從一個頁面跳轉(zhuǎn)到另一個頁面的情況,比如a頁面跳轉(zhuǎn)到b頁面,到b頁面之后將a頁面的數(shù)據(jù)帶過來,或者回顯數(shù)據(jù)。
但是能夠把a(bǔ)頁面的數(shù)據(jù)進(jìn)行加上,然后當(dāng)作b頁面的默認(rèn)附件嗎?答案是肯定的。
一. 用到的技術(shù)棧
- 下面演示的項(xiàng)目是:vue3+elementPlus
- 上傳附件的組件為el-upload
- 第三方庫:xlsx
二. 代碼解析
自動下載附件
import { saveAs } from 'file-saver'; import XLSX from 'xlsx'; // 假設(shè)你已經(jīng)有了一個數(shù)據(jù)數(shù)組data const data = [ // ...你的數(shù)據(jù) ]; // 創(chuàng)建Excel工作簿和工作表 const workbook = XLSX.utils.book_new(); const worksheet = XLSX.utils.json_to_sheet(data); // 將工作表添加到工作簿 XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1'); // 將工作簿轉(zhuǎn)換為二進(jìn)制字符串 const wbout = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' }); // 將二進(jìn)制字符串轉(zhuǎn)換為Blob對象 const blob = new Blob([wbout], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); // 將Blob對象轉(zhuǎn)換為File對象 const file = new File([blob], 'data.xlsx', { type: blob.type }); // 現(xiàn)在你可以使用file對象了,比如保存文件或上傳到服務(wù)器 saveAs(file, 'data.xlsx'); // 使用file-saver保存文件 // 如果你需要上傳這個File對象,你可以將它傳遞給相應(yīng)的上傳函數(shù)或API // uploadFunction(file); // 假設(shè)你有一個uploadFunction用于處理文件上傳
saveAs(file, ‘data.xlsx’)為下載excel的功能,
下載默認(rèn)附件
const generateExcel = async () => { // 假設(shè)你已經(jīng)有了一個數(shù)據(jù)數(shù)組data const data = [ // ...你的數(shù)據(jù) ]; // 附件 const attatch = ref([]) // 創(chuàng)建Excel工作簿和工作表 const workbook = XLSX.utils.book_new(); const worksheet = XLSX.utils.json_to_sheet(data); // 將工作表添加到工作簿 XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1'); // 將工作簿轉(zhuǎn)換為二進(jìn)制字符串 const wbout = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' }); // 將二進(jìn)制字符串轉(zhuǎn)換為Blob對象 const blob = new Blob([wbout], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); // 將Blob對象轉(zhuǎn)換為File對象 const file = new File([blob], 'data.xlsx', { type: blob.type }); // 設(shè)置默認(rèn)值 attatch.value =[file] }
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue發(fā)送websocket請求和http post請求的實(shí)例代碼
這篇文章主要介紹了vue發(fā)送websocket請求和http post請求的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-07-07vue關(guān)于this.$refs.tabs.refreshs()刷新組件方式
這篇文章主要介紹了vue關(guān)于this.$refs.tabs.refreshs()刷新組件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03Vue計算屬性與監(jiān)視屬性實(shí)現(xiàn)方法詳解
最近在學(xué)習(xí)vue,學(xué)習(xí)中遇到了一些感覺挺重要的知識點(diǎn),感覺有必要整理下來,這篇文章主要給大家介紹了關(guān)于Vue.js中計算屬性、監(jiān)視屬性的相關(guān)資料,需要的朋友可以參考下2022-08-08vue-print-nb解決vue打印問題,并且隱藏頁眉頁腳方式
這篇文章主要介紹了vue-print-nb解決vue打印問題,并且隱藏頁眉頁腳方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05vue項(xiàng)目國際化vue-i18n的安裝使用教程
最近接觸學(xué)習(xí)Vue.js框架結(jié)合Element-ui組件開發(fā)項(xiàng)目。由于最近需要實(shí)現(xiàn)國際化功能,所以下面這篇文章主要介紹了vue項(xiàng)目國際化vue-i18n的使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2018-03-03Vue-element-admin平臺側(cè)邊欄收縮控制問題
這篇文章主要介紹了Vue-element-admin平臺側(cè)邊欄收縮控制問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10vue發(fā)送驗(yàn)證碼計時器防止刷新實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了vue發(fā)送驗(yàn)證碼計時器防止刷新實(shí)現(xiàn)詳解,<BR>有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Vue中圖片上傳組件封裝-antd的a-upload二次封裝的實(shí)例
這篇文章主要介紹了Vue中圖片上傳組件封裝-antd的a-upload二次封裝的實(shí)例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09