【问题标题】:Export 100000 rows to CSV in Javascript在 Javascript 中将 100000 行导出为 CSV
【发布时间】:2019-11-06 19:04:25
【问题描述】:

我有 100 000 行,我想将它们导出为 CSV,我确实设法将它导出了几行,但成千上万行返回网络错误到我的浏览器,我无法下载。

        let csvContent = "data:text/csv;charset=utf-8,";
        csvContent += [
            Object.keys(payload[0]).join(";"),
            ...payload.map(item => Object.values(item).join(";"))
        ]
            .join("\n")
            .replace(/(^\[)|(\]$)/gm, "");

        const data = encodeURI(csvContent);
        const link = document.createElement("a");
        link.setAttribute("href", data);
        link.setAttribute("download", "export.csv");
        link.click();

【问题讨论】:

  • 错误是什么?
  • 我认为你必须与wait time out to take back response from server合作
  • 这个使用 Blob 的解决方案可能会有所帮助吗? stackoverflow.com/a/35251739/11683772
  • 它没有显示错误但没有下载它,我认为是因为 javascript 无法处理这么多数据?
  • 那代码是在服务器上运行还是在浏览器上运行?

标签: javascript


【解决方案1】:

你不能 encodeURI 有 100000 行

使用FileSaver.js

var blob = new Blob([csvContent], {type: "text/plain;charset=utf-8"});
saveAs(blob, "export.csv");

也许还可以用Blob.slice() 拆分字符串并保存几个块。

【讨论】:

  • 谢谢!你拯救了我的一天。
猜你喜欢
  • 2021-08-09
  • 1970-01-01
  • 2012-06-08
  • 2013-04-05
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多