如何将对象数组转换为 CSV 文件?

时间:2021-07-11 12:26:17

标签: javascript csv

我正在尝试将对象数组数组转换为 CSV 文件。当我运行我的代码时,我得到一个空的 CSV 文件。我想我搞砸了我的循环,但找不到错误。

function exportCSVFile(headers, items, fileTitle) {
  var jsonResultsString = JSON.stringify(jsonResults);

  var csv = this.ConvertToCSV(jsonResultsString);

  var exportedFilename = fileTitle + '.csv' || 'export.csv'

  var blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });

  if (navigator.msSaveBlob) {
    navigator.msSaveBlob(blob, exportedFilename);
  } else {
    var link = document.createElement("a");
    if (link.download !== undefined) {
      var url = URL.createObjectURL(blob);
      link.setAttribute("href", url);
      link.setAttribute("download", exportedFilename);
      link.style.visibility = 'hidden';
      document.body.appendChild(link);
      link.click();
      document.body.removeChild(link);
    }
  }
}

var headers = {
  delivery: 'Liefertag',
  name: 'Brotname',
  processed: 'Status',
  quantity: 'Menge-Soll',
  runningIndex: 'runningIndex',
  type: 'Typ'
};

function ConvertToCSV(objArray) {
  var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
  var str = '';

  for (var i = 0; i < array.length; i++) {
    var line = '';
    for (var index in array[i]) {
      if (line != '') line += ','

      line += array[i][index]
    }

    str += line + '\r\n';
  }

  return str;
}

我的数组看起来像: this

0 个答案:

没有答案