यहाँ दो प्रश्न हैं:
- कैसे एक सरणी को सीएसवी स्ट्रिंग में परिवर्तित करें
- उस स्ट्रिंग को किसी फाइल में कैसे सेव करें
पहले सवाल के सभी जवाब (एक मिलीमीटर को छोड़कर) यहाँ एक ओवरकिल की तरह लग रहे हैं। और मिलीमीटर द्वारा एक व्यक्ति को आवधिक आवश्यकताओं को कवर नहीं किया जाता है, जैसे उद्धरण के साथ आसपास के तार या वस्तुओं के एरे को परिवर्तित करना।
यहाँ मेरे इस पर ले जाता है:
एक सरल सीएसवी के लिए एक नक्शा () और एक जोड़ () पर्याप्त हैं:
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
विशेषता है जिसे फ़ाइल नाम आप चाहते हैं। फिर "क्लिक" यह लिंक आपकी इच्छा के नाम पर फ़ाइल डाउनलोड करेगा, मैं इसे अपने उत्तर में जोड़ूंगा।