摘要:最近公司項(xiàng)目有一個(gè)需求,是按行業(yè)要求的一個(gè)怪異格式表格下載下來,后端通過表格設(shè)計(jì)器搞了一個(gè)模板,然后填充數(shù)據(jù),前端通過接口獲取到返回的格式的數(shù)據(jù),轉(zhuǎn)成表格提供下載,就用到了這個(gè)引入在頁面引入,我采用的是引入把轉(zhuǎn)成能下載的文件先實(shí)現(xiàn)這個(gè)轉(zhuǎn)換方
最近公司項(xiàng)目有一個(gè)需求, 是按行業(yè)要求的一個(gè)“怪異”格式表格下載下來,后端通過表格設(shè)計(jì)器搞了一個(gè)模板,然后填充數(shù)據(jù), 前端通過接口獲取到返回的base64格式的數(shù)據(jù),轉(zhuǎn)成表格提供下載,就用到了這個(gè)FileSaver.js引入 FileSaver.js
在HTML頁面引入, 我采用的是cdn引入
把base64 轉(zhuǎn)成能下載的文件先實(shí)現(xiàn)這個(gè)轉(zhuǎn)換方法
function b64toFile(b64Data, filename, contentType) { let sliceSize = 512; let byteCharacters = atob(b64Data); let byteArrays = []; for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) { let slice = byteCharacters.slice(offset, offset + sliceSize); let byteNumbers = new Array(slice.length); for (let i = 0; i < slice.length; i++) { byteNumbers[i] = slice.charCodeAt(i); } let byteArray = new Uint8Array(byteNumbers); byteArrays.push(byteArray); } let file = new File(byteArrays, filename, {type: contentType}); return file; }轉(zhuǎn)換并下載表格數(shù)據(jù)
// base64Data 是服務(wù)器獲取到的數(shù)據(jù) let file = b64toFile(base64Data, "test", "application/vnd.ms-excel;charset=utf-8"); // 利用FileSaver.js 下載文件為Excel文件 saveAs(file, "fileName.xls");
是不是so easy 呢?
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/104712.html
摘要:尤其是通過生成文件內(nèi)容,然后通過瀏覽器端執(zhí)行下載的操作。日前,項(xiàng)目中就遇到了這類需求,在瀏覽器端實(shí)現(xiàn)保存當(dāng)前網(wǎng)頁為圖片,然后還可以下載。提供了一種創(chuàng)建對象的方法,但是兼容性堪憂,絕大部分瀏覽器都沒有實(shí)現(xiàn)。 問題場景 在前端很多的項(xiàng)目中,文件下載的需求很常見。尤其是通過JS生成文件內(nèi)容,然后通過瀏覽器端執(zhí)行下載的操作。如圖片,Execl 等的導(dǎo)出功能。日前,項(xiàng)目中就遇到了這類需求,在瀏覽...
摘要:實(shí)現(xiàn)并發(fā)請求實(shí)現(xiàn)并發(fā)請求生成并下載字符串文件首先我們需要了解一個(gè)特殊的數(shù)據(jù)格式。如果類型未知,則該值為空字符串。表示狀態(tài)的數(shù)字。一旦完成,屬性中將包含一個(gè)字符串以表示所讀取的文件內(nèi)容。 在web開發(fā)中,如果你想讓用戶下載或者導(dǎo)出一個(gè)文件,應(yīng)該怎么做呢?傳統(tǒng)的做法是在后端存儲(chǔ)或者即時(shí)生成一個(gè)文件來提供下載功能,這樣的優(yōu)勢是可以做權(quán)限控制、數(shù)據(jù)二次處理,但缺點(diǎn)是需要額外發(fā)起請求、增大服務(wù)端...
摘要:實(shí)現(xiàn)并發(fā)請求實(shí)現(xiàn)并發(fā)請求生成并下載字符串文件首先我們需要了解一個(gè)特殊的數(shù)據(jù)格式。如果類型未知,則該值為空字符串。表示狀態(tài)的數(shù)字。一旦完成,屬性中將包含一個(gè)字符串以表示所讀取的文件內(nèi)容。 在web開發(fā)中,如果你想讓用戶下載或者導(dǎo)出一個(gè)文件,應(yīng)該怎么做呢?傳統(tǒng)的做法是在后端存儲(chǔ)或者即時(shí)生成一個(gè)文件來提供下載功能,這樣的優(yōu)勢是可以做權(quán)限控制、數(shù)據(jù)二次處理,但缺點(diǎn)是需要額外發(fā)起請求、增大服務(wù)端...
閱讀 2970·2023-04-25 17:46
閱讀 3594·2021-11-25 09:43
閱讀 1100·2021-11-18 10:02
閱讀 3057·2021-10-14 09:43
閱讀 2776·2021-10-13 09:40
閱讀 1529·2021-09-28 09:35
閱讀 2190·2019-08-30 15:52
閱讀 3161·2019-08-30 14:06