มีสองคำถามที่นี่:
- วิธีการแปลงอาร์เรย์เป็นสตริง csv
- วิธีบันทึกสตริงนั้นลงในไฟล์
คำตอบทั้งหมดสำหรับคำถามแรก (ยกเว้นคำตอบโดย Milimetric) ที่นี่ดูเหมือนว่าเกินความจริง และหนึ่งโดย Milimetric ไม่ครอบคลุมข้อกำหนด altrenative เช่นสายโดยรอบด้วยคำพูดหรือแปลงอาร์เรย์ของวัตถุ
นี่คือเวลาของฉันในเรื่องนี้:
สำหรับ csv อย่างง่ายหนึ่งแผนที่ () และการเข้าร่วม () ก็เพียงพอแล้ว:
var test_array = [["name1", 2, 3], ["name2", 4, 5], ["name3", 6, 7], ["name4", 8, 9], ["name5", 10, 11]];
var csv = test_array.map(function(d){
return d.join();
}).join('\n');
/* Results in
name1,2,3
name2,4,5
name3,6,7
name4,8,9
name5,10,11
วิธีนี้ยังช่วยให้คุณสามารถระบุตัวแยกคอลัมน์นอกเหนือจากเครื่องหมายจุลภาคในการเข้าร่วมภายใน เช่นแท็บ:d.join('\t')
ในทางกลับกันหากคุณต้องการทำอย่างถูกต้องและใส่สตริงในเครื่องหมายคำพูด "" คุณสามารถใช้เวทมนตร์ JSON:
var csv = test_array.map(function(d){
return JSON.stringify(d);
})
.join('\n')
.replace(/(^\[)|(\]$)/mg, ''); // remove opening [ and closing ]
// brackets from each line
/* would produce
"name1",2,3
"name2",4,5
"name3",6,7
"name4",8,9
"name5",10,11
หากคุณมีอาร์เรย์ของวัตถุเช่น:
var data = [
{"title": "Book title 1", "author": "Name1 Surname1"},
{"title": "Book title 2", "author": "Name2 Surname2"},
{"title": "Book title 3", "author": "Name3 Surname3"},
{"title": "Book title 4", "author": "Name4 Surname4"}
];
// use
var csv = data.map(function(d){
return JSON.stringify(Object.values(d));
})
.join('\n')
.replace(/(^\[)|(\]$)/mg, '');
window.open
จากสิ่งที่ฉันรู้ว่ามีไม่ได้เป็นวิธีที่จะทำโดยใช้ อย่างไรก็ตามคุณสามารถสร้างลิงค์ที่ซ่อนอยู่ซึ่งมีการdownload
ตั้งค่าคุณสมบัติเป็นชื่อไฟล์ที่คุณต้องการ จากนั้น "คลิก" ลิงก์นี้จะดาวน์โหลดไฟล์ในชื่อที่คุณต้องการฉันจะเพิ่มลงในคำตอบของฉัน