資料來源:https://stackoverflow.com/questions/23301467/javascript-exporting-large-text-csv-file-crashes-google-chrome

這是一個副程式,只要把產生好的csv字串(以","分隔欄位,以"\r\n"分隔紀錄),放到data,把要下載的檔案名稱放到fileName即可。

之前下載會有亂碼,後來發現前方要加上字串,如:"\ufeff" + csvData

例如

var csvstring='編號,姓名,成績\r\n1,John,95\r\n2,Mary,88\r\n3,Jack,50';
downloadFile(csvstring, "download.csv");


function downloadFile(data, fileName) {
        var csvData = data;
        var blob = new Blob([ "\ufeff" + csvData ], {
            type : "application/csv;charset=utf-8;"
        });

        if (window.navigator.msSaveBlob) {
            // FOR IE BROWSER
            navigator.msSaveBlob(blob, fileName);
        } else {
            // FOR OTHER BROWSERS
            var link = document.createElement("a");
            var csvUrl = URL.createObjectURL(blob);
            link.href = csvUrl;
            link.style = "visibility:hidden";
            link.download = fileName;
            document.body.appendChild(link);
            link.click();
            document.body.removeChild(link);
        }
}


 

arrow
arrow
    文章標籤
    js csv
    全站熱搜

    夜市 小霸王 發表在 痞客邦 留言(0) 人氣()