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可用。
添加回答
举报