国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:36:56
字體:
來源:轉載
供稿:網友

理解Blob對象

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

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

1. 創建Blob對象方式如下:

var blob = new Blob(dataArray, options);

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

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

1. 創建一個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);

比如我現在結合上面的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標簽的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();            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 洛扎县| 象州县| 灌阳县| 鄂托克前旗| 康乐县| 美姑县| 叶城县| 广西| 龙岩市| 荥阳市| 土默特右旗| 铁岭县| 泾川县| 巴中市| 镇巴县| 靖远县| 酒泉市| 岑巩县| 华容县| 江陵县| 保亭| 合山市| 香格里拉县| 平罗县| 嘉荫县| 开封县| 石柱| 宜兴市| 永安市| 新干县| 永善县| 和硕县| 全南县| 英山县| 上高县| 定兴县| 闸北区| 丰镇市| 道孚县| 深水埗区| 惠安县|