資料來源: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);
}
}