站長資訊網
        最全最豐富的資訊網站

        一文詳解js如何用文件流下載csv文件

        本篇文章給大家帶來了關于js+csv的相關知識,其中主要介紹了什么是Blob對象,怎么理解它以及如何使用文件流實現下載csv文件,感興趣的朋友,下面一起來看一下吧,希望對大家有幫助。

        一文詳解js如何用文件流下載csv文件

        js使用文件流下載csv文件的實現方法

        理解 Blob 對象

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

        現在我們開始來理解下 Bolb 對象及它的文件流下載應用場景,話不多說了,來一起看看詳細的介紹吧

        • 創建 Blob 對象方式如下:

        var blob = new Blob(dataArray, options);
        登錄后復制

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

        options 是可選的對象參數,用于設置數組中數據的 MIME 類型。

        • 創建一個 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"}
        登錄后復制

        • 理解 URL.createObjectURL 對象

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

         window.URL.createObjectURL(file / blob);
        登錄后復制

        比如我現在結合上面的 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
        登錄后復制

        • 理解 HTML5 中 a 標簽的 download 屬性

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

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

                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();
        登錄后復制

        推薦學習:《JavaScript視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 久久九九亚洲精品| 欧美日韩精品在线观看| 国产精品无码久久综合网| 精品国精品国产自在久国产应用| 国产精品无码专区在线观看| 国产99精品久久| 老汉精品免费AV在线播放| 久久精品视频91| 88国产精品欧美一区二区三区| 国精品午夜福利视频不卡| 亚洲一日韩欧美中文字幕欧美日韩在线精品一区二 | 亚洲AV永久无码精品一百度影院| 国产乱码精品一区二区三| mm1313亚洲国产精品无码试看| 久久国产免费观看精品| 69SEX久久精品国产麻豆| 久久国产精品无码一区二区三区| 亚洲日韩欧美制服精品二区| 欧美亚洲精品中文字幕乱码免费高清| 国产精品色视频ⅹxxx| 人精品影院| 国产精品内射久久久久欢欢 | 亚洲精品无码永久在线观看你懂的 | 鲸鱼传媒绿头鱼实验室之炮机测评日韩精品一级毛 | 97久人人做人人妻人人玩精品| 国内精品在线视频| 国产精品一级片| 国产一区二区精品| 国产精品网站在线观看| 精品国产第1页| 久久精品国产91久久综合麻豆自制 | 久久久精品日本一区二区三区| 久久久久人妻精品一区三寸蜜桃| 精品人妻系列无码人妻免费视频 | 国产精品电影在线观看| 国产精品成人不卡在线观看| 91麻豆精品视频| 精品免费视在线观看| 久久亚洲精品视频| 国产成人精品久久亚洲高清不卡| 国产精品夜色视频一级区|