将多维JavaScript数组转换为csv文件

时间:2019-05-17 11:38:01

标签: javascript arrays excel csv

我目前正试图将Javascript数组导出到CSV文件中,以便将其加载到Excel中。

数组是这样的:

var data = [
  [
    ['timestamp1', 'value1'], 
    ['timestamp2 ', 'value2']
  ],
  [
    ['timestamp1', 'value1'], 
    ['timestamp2 ', 'value2']
  ],
  [ 
    ['timestamp1', 'value1'], 
    ['timestamp2 ', 'value2']
  ]
];

因此,我想要的是这样的东西:

t1 v1   t1 v1   t1 v1
t2 v2   t2 v2   t2 v2

我已经做了一些研究并尝试了一个示例:

var csvContent = '';
var dataString;
data. (function (infoArray) {
  dataString = infoArray.join(';');
  csvContent += dataString + "\n";
});

但是它似乎不适用于这种多维数组。

有人知道可行的解决方案吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

那当然是可行的。在您的情况下,要使其困难一点的是它是三维数组。 好吧,基本上,您只需要两个for循环并从元素中组成一个字符串。

var data = [
  [
    ['timestamp1', 'value1'],
    ['timestamp2', 'value2']
  ],
  [
    ['timestamp1', 'value1'],
    ['timestamp2', 'value2']
  ],
  [
    ['timestamp1', 'value1'],
    ['timestamp2', 'value2']
  ]
];
var csvContent = "";
for (var a = 0; a < data[0].length; a++) {
  if (a != 0) {
    csvContent += "\n";
  }
  for (var b = 0; b < data.length; b++) {
    csvContent += data[b][a][0] + "," + data[b][a][1] + ",";
  }
}
console.log(csvContent);