最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js使用文件流下載csv文件的實現(xiàn)方法

 更新時間:2019年07月15日 14:57:47   作者:龍恩0707  
這篇文章主要給大家介紹了關(guān)于js使用文件流下載csv文件的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用js具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

理解Blob對象

在Blob對象出現(xiàn)之前,在javascript中一直沒有比較好的方式處理二進(jìn)制文件,自從有了Blob了,我們就可以使用它操作二進(jìn)制數(shù)據(jù)了。

現(xiàn)在我們開始來理解下Bolb對象及它的文件流下載應(yīng)用場景,話不多說了,來一起看看詳細(xì)的介紹吧

1. 創(chuàng)建Blob對象方式如下:

var blob = new Blob(dataArray, options);

dataArray: 它是一個數(shù)組,它包含了要添加到Blob對象中的數(shù)據(jù)。數(shù)組可以是二進(jìn)制對象或者字符串。

options是可選的對象參數(shù),用于設(shè)置數(shù)組中數(shù)據(jù)的MIME類型。

1. 創(chuàng)建一個DOMString對象的Blob對象。如下代碼:

var str = "<div>Hello World</div>"; 
var blob = new Blob([str], {type: 'text/xml'}); 
console.log(blob); // 輸出:Blob {size: 22, type: "text/xml"}

2. 理解URL.createObjectURL對象

window對象的URL對象是用來將blob或file讀取成一個url的。

window.URL.createObjectURL(file / blob);

比如我現(xiàn)在結(jié)合上面的blob對象來生成一個url的簡單demo實列如下所示:

var str = "<div>Hello World</div>"; 
var blob = new Blob([str], {type: '.csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel'});
console.log(blob); 

const url3 = window.URL.createObjectURL(blob);
console.log(url3);

如上代碼第一個打印blob變量值如下:

Blob {size: 22, type: ".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"}

打印第二個url3變量值信息如下:

blob:null/2c75a56e-0104-4572-bc19-391d3bf93d9d

3. 理解HTML5中a標(biāo)簽的download屬性

HTMl5中給a標(biāo)簽新增了一個download屬性,只要我們設(shè)置該屬性值,那么點(diǎn)擊該鏈接時瀏覽器不會打開新鏈接,而是會直接下載文件,并且文件名就是 download 的屬性值。

因此結(jié)合這個特點(diǎn),我們就可以簡單的實現(xiàn)文件流下載文件了,我們首先在原來的代碼基礎(chǔ)之上,再動態(tài)創(chuàng)建一個a鏈接,然后把該a標(biāo)簽的樣式設(shè)置none, 該鏈接的 href屬性 就是我們上面是有 window.URL.createObjectURL(blob); 生成的url,然后我們把 a鏈接的download屬性設(shè)置下,該屬性值就是我們的下載文件的文件名。最后觸發(fā)點(diǎn)擊功能即可下載了。如下代碼:

var str = "<div>Hello World</div>"; 
var blob = new Blob([str], {type: '.csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel'});
console.log(blob);
const url3 = window.URL.createObjectURL(blob);
console.log(url3);

var filename = '文件流下載' + '.csv';
const link = document.createElement('a');
link.style.display = 'none';
link.href = url3;
link.setAttribute('download', filename);
document.body.appendChild(link);
link.click();

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

  • JavaScript獲取當(dāng)前url路徑過程解析

    JavaScript獲取當(dāng)前url路徑過程解析

    這篇文章主要介紹了JavaScript獲取當(dāng)前url路徑過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • JS基于對象的特性實現(xiàn)去除數(shù)組中重復(fù)項功能詳解

    JS基于對象的特性實現(xiàn)去除數(shù)組中重復(fù)項功能詳解

    這篇文章主要介紹了JS基于對象的特性實現(xiàn)去除數(shù)組中重復(fù)項功能,結(jié)合實例形式較為詳細(xì)的分析了js基于key值唯一性實現(xiàn)數(shù)組去重的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-11-11
  • JavaScript URL參數(shù)讀取改進(jìn)版

    JavaScript URL參數(shù)讀取改進(jìn)版

    此前發(fā)表的那一版確實能不用循環(huán),但是總用正則表達(dá)式的替換,不一定比用循環(huán)提高性能,而且把程序搞得有些太復(fù)雜了。從《JavaScript權(quán)威指南》上學(xué)到的范例如下
    2009-01-01
  • javascript動態(tài)獲取登錄時間和在線時長

    javascript動態(tài)獲取登錄時間和在線時長

    這篇文章主要為大家詳細(xì)介紹了javascript動態(tài)獲取登錄時間和在線時長的相關(guān)資料,獲得登錄時候的時間,用來和動態(tài)的時間做差來求時長,感興趣的小伙伴們可以參考一下
    2016-02-02
  • 輸入npm?run?xxx后執(zhí)行原理深入解析

    輸入npm?run?xxx后執(zhí)行原理深入解析

    這篇文章主要為大家介紹了輸入npm?run?xxx后執(zhí)行原理深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • js跨域資源共享 基礎(chǔ)篇

    js跨域資源共享 基礎(chǔ)篇

    這篇文章主要為大家詳細(xì)介紹了javascript跨域資源共享的相關(guān)資料,感興趣的朋友可以參考一下
    2016-07-07
  • javascript中JSON.parse()與eval()解析json的區(qū)別

    javascript中JSON.parse()與eval()解析json的區(qū)別

    這篇文章主要介紹了javascript中JSON.parse()與eval()解析json的區(qū)別,詳細(xì)描述了json格式數(shù)據(jù)的操作技巧,并結(jié)合實例形式對比分析了使用JSON.parse()與eval()解析json的區(qū)別,需要的朋友可以參考下
    2016-05-05
  • Javascript筆記一 js以及json基礎(chǔ)使用說明

    Javascript筆記一 js以及json基礎(chǔ)使用說明

    JavaScript中的數(shù)據(jù)很簡潔的。簡單數(shù)據(jù)只有 undefined, null, boolean, number和string這五種,而復(fù)雜數(shù)據(jù)只有一種,即object。
    2010-05-05
  • JavaScript 異步調(diào)用框架 (Part 5 - 鏈?zhǔn)綄崿F(xiàn))

    JavaScript 異步調(diào)用框架 (Part 5 - 鏈?zhǔn)綄崿F(xiàn))

    在上一篇文章里面,我們?yōu)楫惒秸{(diào)用框架設(shè)計了一種鏈?zhǔn)秸{(diào)用方式,來增強(qiáng)異步調(diào)用隊列的代碼可讀性,現(xiàn)在我們就來編寫實現(xiàn)這部分功能的代碼。
    2009-08-08
  • JS函數(shù)進(jìn)階之繼承用法實例分析

    JS函數(shù)進(jìn)階之繼承用法實例分析

    這篇文章主要介紹了JS函數(shù)進(jìn)階之繼承用法,結(jié)合實例形式分析了JavaScript函數(shù)繼承相關(guān)定義與使用操作技巧,需要的朋友可以參考下
    2020-01-01

最新評論

台北县| 泾阳县| 石景山区| 奎屯市| 嘉黎县| 五家渠市| 岐山县| 麻江县| 开封县| 香港 | 贡山| 印江| 宾川县| 汉川市| 舒兰市| 文山县| 邵阳县| 大名县| 桂东县| 策勒县| 扎兰屯市| 璧山县| 陵川县| 平塘县| 陇西县| 鹿泉市| 石城县| 汝南县| 定日县| 临沭县| 洛浦县| 新野县| 临邑县| 富蕴县| 连城县| 枝江市| 沙河市| 泰州市| 永年县| 江山市| 新绛县|