Burada iki soru var:
- Bir diziyi csv dizesine dönüştürme
- Bu dize bir dosyaya nasıl kaydedilir
Buradaki ilk sorunun tüm cevapları (Milimetrik tarafından verilenler hariç) aşırıya kaçmış gibi görünüyor. Ve Milimetrik olanı, dizeleri tırnak işaretleri ile çevrelemek veya nesnelerin dizilerini dönüştürmek gibi alternatif gereksinimleri kapsamaz.
İşte bu benim alır:
Basit bir csv için bir map () ve join () yeterlidir:
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
Bu yöntem ayrıca iç birleşimde virgül dışında bir sütun ayırıcı belirtmenize olanak tanır. örneğin bir sekme:d.join('\t')
Öte yandan, düzgün bir şekilde yapmak ve "" tırnak işaretleri içine dizeleri eklemek istiyorsanız, o zaman bazı JSON büyüsünü kullanabilirsiniz:
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
aşağıdaki gibi bir dizi nesneniz varsa:
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
. Ancak, istediğinizdownload
dosya adına ayarlanmış bir özniteliğe sahip gizli bir bağlantı oluşturabilirsiniz . Sonra bu bağlantıyı "tıklatmak" istediğiniz dosyayı indirir, cevabıma ekleyeceğim.