无法使用 Angular JS 在 CSV 文件中保存超过 8Mb 的内容

Unable to save content more than 8Mb in a CSV file with Angular JS

我从后端收到一个字符串作为响应,其中包含超过 8MB 的 csv 内容。

使用此代码:

myService.getCsvExportContent(vm.searchParams).then(function (content) {
        var encodedUri = encodeURI(content);
        var link = document.createElement("a");
        link.setAttribute("href", encodedUri);
        link.setAttribute("download", "MCsExport.csv");
        document.body.appendChild(link);
        link.click();
      });

当结果小于 8Mb 时,它会创建整个文件,但当它大于 8Mb 时,它会将一半数据保存到文件中,我会丢失数据。 (我在浏览器中调试可以看到大小)

我尝试了 angular-file-saver 但我仍然遇到错误,依赖项的注入在 AngularJS 中对我不起作用。

我尝试用内容创建 Blob 对象,结果相同。

请帮忙。谢谢。

试试这个方法,对我有用:

myService.getCsvExportContent(vm.searchParams).then(function (content) {
    var link = document.createElement("a");
    var blob = new Blob([content],{type: 'text/csv;charset=utf-8;'});
    var url = URL.createObjectURL(blob);
    link.href = url;
    link.setAttribute("download", "MCsExport.csv");
    link.click();
  });

感谢您的帮助。最后注入 ngFileSaver 对我有用。 bower cache clean 然后 bower install angular-file-saver --save-dev 并且我注入的对象被识别。

所以 FileSaver.saveAs(blob, "filePath.csv") 工作得很好。

var blob = new Blob([content], {type: 'text/csv;charset=utf-8'});    
FileSaver.saveAs(blob, "Export.csv");