【问题标题】:Chrome cannot export to csv if there are too many rows?如果行太多,Chrome 无法导出到 csv?
【发布时间】:2013-10-16 21:20:56
【问题描述】:

我编写了这个导出按钮,它基本上将我在 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();

【问题讨论】:

  • 你要放入多少行数据?

标签: javascript google-chrome csv


【解决方案1】:

Chrome 只能处理大约 200 万个字符长(或更少)的 HREF。

您希望将输出添加到 Blob,然后在该 blob 上使用 URL.createObjectURL (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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2021-10-01
    • 2016-04-20
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多