如何解决如何将数据写入一个csv文件?
我目前正在尝试将Firebase中的数据写入csv文件。可以,但是我得到了三个不同的文件,我不知道该如何解决。在这个时候我感到非常困惑。
您对如何解决此问题有任何想法吗?
这是我的JSON:
{
"records" : {
"id1" : {
"2020-08-11 15:40:13" : {
"0" : "5"
},"2020-08-11 16:35:09" : {
"0" : "18"
}
},"id2" : {
"2020-08-11 17:23:34" : {
"0": "5"
}
},"id3" : {
"2020-08-11 09:38:53" : {
"0": "4"
}
},"id4" : {
"2020-08-11 13:41:30" : {
"0": "2"
},"2020-08-11 13:41:44" : {
"0": "3"
}
}
}
}
基本上,我想获取所有id并将其写入csv文件的列中。 “测试”条目只是其他数据条目的占位符。
这是我到目前为止所拥有的:
function downloadData(){
var db = firebase.database().ref();
var dbRef = db.child('records');
dbRef.once('value',function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var childKey = childSnapshot.key;
var b = [childKey,'iwannasleep'];
// console.log(childKey);
// console.log(b);
var data = [b];
console.log(data);
// ------------- export into csv ---------------
var arrayHeader = ["user_id","test"]
var csv = arrayHeader.join(',') + '\n';
data.forEach( function(row) {
csv += row.join(',');
csv += "\n";
});
console.log(csv);
var hiddenElement = document.createElement('a');
hiddenElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csv);;
hiddenElement.target = '_blank';
hiddenElement.download = 'data.csv';
hiddenElement.click();
});
});
}
解决方法
正如RobIII所说,您正在for循环内 中创建一个下载链接,这意味着您正在为每一行数据创建一个单独的元素。
您需要将其拉出循环:
var db = firebase.database().ref();
var dbRef = db.child('dataRecordings');
dbRef.once('value',function(snapshot) {
var arrayHeader = ["user_id","test"]
var csv = arrayHeader.join(',') + '\n';
snapshot.forEach(function(childSnapshot) {
var childKey = childSnapshot.key;
var b = [childKey,'iwannasleep'];
var data = [b];
data.forEach(function(row) {
csv += row.join(',');
csv += "\n";
});
});
var hiddenElement = document.createElement('a');
hiddenElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csv);;
hiddenElement.target = '_blank';
hiddenElement.download = 'data.csv';
hiddenElement.click();
});
更新:有关您的问题中的JSON的示例:
const json = {
"records" : {
"id1" : {
"2020-08-11 15:40:13" : { "0" : "5" },"2020-08-11 16:35:09" : { "0" : "18" }
},"id2" : {
"2020-08-11 17:23:34" : { "0": "5" }
},"id3" : {
"2020-08-11 09:38:53" : { "0": "4" }
},"id4" : {
"2020-08-11 13:41:30" : { "0": "2" },"2020-08-11 13:41:44" : { "0": "3" }
}
}
}
var arrayHeader = ["user_id","test"]
var csv = arrayHeader.join(',') + '\n';
Object.keys(json.records).forEach((childKey) => {
var b = [childKey,'iwannasleep'];
var data = [b];
data.forEach(function(row) {
csv += row.join(',');
csv += "\n";
});
});
console.log(csv);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。