導出csv文件js(導出csv文件 中文亂碼)

本文目錄一覽:

使用angularJs的ng-csv導出CSV,能不能在導出CSV的時候裡面有多個sheet?

csv就是個普通的文本文件。不存在多個sheet。所以: 沒辦法導出帶多個sheet的csv文件。 詳見: 【記錄】使用Python讀取/導出(寫入)CSV文件 帶多個sheet的,是excel文件。 用python導出,帶多個的excel,說實話我沒弄過。

JS 下載/導出 csv、excel、txt 、img等文件的方法總結

1. 調用後端接口導出文件

示例下載接口url

1.1 window.open(url)

會打開一個新窗口,開始下載後會自動關閉新窗口。Safair 下載後沒有關閉新窗口。

Chrome、IE、Safair支持,貌似火狐不支持

1.2 window.location=url

在當前窗口下載

Chrome、Safair支持

1.3 iframe

在HTML中,iframe 的屬性用src,但在JS中,只有部份瀏覽器支持修改src(讀是沒問題),真正通用的是要修改對應框架的href值。

1.4 a href=”url” download=”filename”點擊鏈接下載/a

HTML5中給a標籤增加了一個download屬性,只要有這個屬性,點擊這個鏈接時瀏覽器就不在打開鏈接指向的文件,而是改為下載,目前只有chrome、firefox、opera、Edge支持。常用此方法點擊下載圖片。

IE既不支持a標籤的download屬性也不允許js調用a 標籤的click方法。

2. 前端直接導出文件到本地

2.1 將數據轉成DataURI用a標籤下載

a href=”DataURI” download=”filename”點擊鏈接下載/a

Data URI Scheme

Data URI Scheme是指可以在Web 頁面中包含圖片但無需任何額外的HTTP 請求的一類URI。 Data URI Scheme一般用於將經過base64編碼的數據嵌入網頁中,從而減少請求資源的鏈接數。IE8 之前的版本都不支持 data URI scheme。

DataURI的格式:

生成DataURI的方式

1. encodeURIComponent

使用這種方式,當數據過多時,URI長度容易超出瀏覽器限制。 encodeURIComponent常用來轉碼接口參數,為了避免服務器收到不可預知的請求,對任何用戶輸入的作為URI部分的內容都需要用encodeURIComponent進行轉義。

2. URL.createObjectURL

URL.createObjectURL的參數是File對象或者Blob對象

IE10以下不支持URL.createObjectURL

2.2 windows.navigator.msSaveBlob IE10~Edge 專用

msSaveBlob 是IE10~Edge 私有方法。

2.3 execCommand

有的資料有提到IE9可以使用execCommand方法來保存數據到本地文件,但是我自己沒有驗證過,不知道是否可行。而且MDN文檔中execCommand沒有查到SaveAs命令。這塊只是做個小記錄。

js數據直接導出/下載數據到本地到方法總結

本文轉載自:

如何用jquery把文件導出成csv格式文件

兼容性好點就發送內容到服務器,又服務器處理,設置”Content-Disposition”響應頭”attachment;filename=\”xxx.csv\””)

要不就只能IE瀏覽器下的document.execCommand(‘SaveAs’, ‘xxx.csv’);了,兼容性不是很好,而且好像指定的文件名和後綴沒效果。。

div id=”dv”

table

tr

th

tabletrth/thth/thth/th/tr/table

/th

th

tabletrth/thth/thth/th/tr/table

/th

th

tabletrth/thth/thth/th/tr/table

/th

/tr

/table

/div

iframe id=”ifr” style=”position:absolute;left:-999px;top:-999px;” src=”javascript:void(0)”/iframe

script type=”text/javascript”

    window.onload = function () {

        if (!!document.all) { alert(‘非IE瀏覽器無法直接JS控制保存文件!’); return false; }

        var doc = document.getElementById(‘ifr’).contentWindow.document;

        doc.open();

        doc.write(document.getElementById(‘dv’).innerHTML);

        doc.close();

        doc.execCommand(‘SaveAs’, ‘xxx.csv’);

    }

/script

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/247789.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:23
下一篇 2024-12-12 13:23

相關推薦

發表回復

登錄後才能評論