为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Javascript 将数据导出到 CSV?

如何使用 Javascript 将数据导出到 CSV?

温温酱 2022-07-08 18:09:51
我设法编写了一个脚本,将数据从 Javascript 的 GET 请求导出到 CSV。但是,我有一个unit具有更多字段(时间、高度、纬度、o3、co2、ch2o)的变量。如何使用从脚本中获取的值创建包含更多列的 CSV?到目前为止,我已经设法创建了一个带有多个标题的 CSV,但我不知道如何用数据填充 CSV 的行。我已经设法完全填充了一列。在下面的函数中,我以前unit[Object.keys(unit)[4]]只获取co2数据。如何将数据附加到每一列?function download_csv(data, sensor) {  var csv = 'Day, altitude, latitude, o3, co2, ch2o\n';  for (var index in data) {    if (!data.hasOwnProperty(index)) continue;    var unit = data[index];    csv += unit[Object.keys(unit)[4]];    csv += "\n";  }  var hiddenElement = document.createElement('a');  hiddenElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csv);  hiddenElement.target = '_blank';  hiddenElement.download = sensor + '.csv';  hiddenElement.click();}数据具有以下格式:
查看完整描述

1 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

假设data参数包含用于构建 CSV 数据的对象数组,您可以使用Object.keys()和Object.value()动态构建数据。使用此方法,键名是什么或数据中包含多少个键名都无关紧要。


function download_csv(data, sensor) {

  let csvHeader = Object.keys(data[0]).join(',') + '\n'; // header row

  let csvBody = data.map(row => Object.values(row).join(',')).join('\n');


  var hiddenElement = document.createElement('a');

  hiddenElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csvHeader + csvBody);

  hiddenElement.target = '_blank';

  hiddenElement.download = sensor + '.csv';

  hiddenElement.click();

}


let data = [{

  lorem: 'ipsum',

  foo: 'bar',

  fizz: 'buzz'

}];

download_csv(data, 'foobar');

如果您需要支持旧版浏览器,需要注意的一件事Object.values是 IE 不支持。不过,有一个polyfill可用。



查看完整回答
反对 回复 2022-07-08
  • 1 回答
  • 0 关注
  • 179 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号