简体   繁体   English

如何使用JavaScript将大量json数据导出到CSV?

[英]How to export large amount of json data to CSV using javascript?

I tried this below code to export but it's giving error('failed - network error') in Chrome Browser if json data size is too large. 我尝试将下面的代码导出,但是如果json数据太大,则会在Chrome浏览器中给出错误(“失败-网络错误”)。 For small size of data it's working fine. 对于较小的数据,它可以正常工作。

<script>
var items = [
    {university: 'A',college: 'X',state: 'J'},
    {university: 'B',college: 'Y',state: 'K'},
    {university: 'C',college: 'Z',state: 'L'}
];

// Convert Object to JSON
var jsonObject = JSON.stringify(items);
var array = typeof jsonObject != 'object' ? JSON.parse(jsonObject) : jsonObject;
var csv = '';
for (var i = 0; i < array.length; i++) {
    var line = '';
    for (var index in array[i]) {
    if (line != '') line += ','
        line += array[i][index];
    }
    csv += line + '\r\n';
}
var uri = 'data:text/csv;charset=utf-8,' + csv;
data = encodeURI(uri);
var link = document.createElement("a");
link.href = data;
link.style = "visibility:hidden";
link.download = "xyz.csv";
link.click();
</script>

Thanks 谢谢

Try this for large amount of data 尝试此以获取大量数据

var items = [{
    university: 'A',
    college: 'X',
    state: 'J'
  },
  {
    university: 'B',
    college: 'Y',
    state: 'K'
  },
  {
    university: 'C',
    college: 'Z',
    state: 'L'
  }
];

// Convert Object to JSON
var jsonObject = JSON.stringify(items);
var array = typeof jsonObject != 'object' ? JSON.parse(jsonObject) : jsonObject;
var csv = '';
for (var i = 0; i < array.length; i++) {
  var line = '';
  for (var index in array[i]) {
    if (line != '') line += ','
    line += array[i][index];
  }
  csv += line + '\r\n';
}
csvData = new Blob([csv], {
  type: "data:application/vnd.ms-excel;charset=utf-8,\uFEFF"
});
var csvUrl = URL.createObjectURL(csvData);
var a = document.createElement("a");
a.href = csvUrl;
a.setAttribute("download", fileName + ".csv");
document.body.appendChild(a);
a.click();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM