6

基本的に、Googleテーブルにあるすべてのデータをダウンロード用のCSVに吐き出すこのエクスポートボタンを作成しました。行が多すぎるまで完全に正常に動作し、csv をダウンロードしようとすると Chrome から「aw snap」エラー ページが表示されます。これを修正するにはどうすればよいですか?

    var csvContent = "data:text/csv;charset=utf-8,";

    data.forEach(function (infoArray, index) {
        dataString = infoArray.join(",");
        csvContent += dataString + "\n";
    });

    var encodedUri = encodeURI(csvContent);
    var link = document.createElement("a");
    link.setAttribute("href", encodedUri);
    link.setAttribute("download", "Data.csv");
    link.click();
4

1 に答える 1

18

Chrome は、およそ 200 万文字 (またはそれ以下) の HREF のみを処理できます。

出力をBlobURL.createObjectURLに追加し、その Blob で( MDN )を使用して ObjectURL を作成し、それをアンカーの href 属性に添付します。

例は次のとおりです。

var csvContent = "";

data.forEach(function (infoArray, index) {
    dataString = infoArray.join(",");
    csvContent += dataString + "\n";
});

var blobdata = new Blob([csvContent],{type : 'text/csv'});
var link = document.createElement("a");
link.setAttribute("href", window.URL.createObjectURL(blobdata));
link.setAttribute("download", "Data.csv");
document.body.appendChild(link);
link.click();
于 2013-10-16T21:32:54.020 に答える