JSON to CSV/Excel Convert
Convert JSON data with the help of JAVASCRIPT to generate CSV/Excel file
by oscard
HTML
<div class='mydiv'>
<textarea id="txt" class='txtarea'>[{"Vehicle":"BMW","Date":"30, Jul 2013 09:24 AM","Location":"Hauz Khas, Enclave, New Delhi, Delhi, India","Speed":42},{"Vehicle":"Honda CBR","Date":"30, Jul 2013 12:00 AM","Location":"Military Road, West Bengal 734013, India","Speed":0},{"Vehicle":"Supra","Date":"30, Jul 2013 07:53 AM","Location":"Sec-45, St. Angel's School, Gurgaon, Haryana, India","Speed":58},{"Vehicle":"Land Cruiser","Date":"30, Jul 2013 09:35 AM","Location":"DLF Phase I, Marble Market, Gurgaon, Haryana, India","Speed":83},{"Vehicle":"Suzuki Swift","Date":"30, Jul 2013 12:02 AM","Location":"Behind Central Bank RO, Ram Krishna Rd by-lane, Siliguri, West Bengal, India","Speed":0},{"Vehicle":"Honda Civic","Date":"30, Jul 2013 12:00 AM","Location":"Behind Central Bank RO, Ram Krishna Rd by-lane, Siliguri, West Bengal, India","Speed":0},{"Vehicle":"Honda Accord","Date":"30, Jul 2013 11:05 AM","Location":"DLF Phase IV, Super Mart 1, Gurgaon, Haryana, India","Speed":71}]</textarea>
<button class='gen_btn'>Generate File</button>
</div>
CSS
.txtarea{
max-width:100%;
min-height:200px;
display:block;
width:100%;
}
.mydiv{
padding:10px;
}
.gen_btn{
padding:5px;
background-color:#743ED9;
color:white;
font-family:arial;
font-size:13px;
border:2px solid black;
}
.gen_btn:hover{
background-color:#9a64ff;
}
JavaScript
$(document).ready(function(){
$('button').click(function(){
//var data = $('#txt').val();
var data = '[{"name":"Test ENET1","value":""},{"name":"Test ENET2","value":""},{"name":"Test USB1","value":""},{"name":"Test USB2","value":""},{"name":"Test XDSL","value":""},{"name":"Test WAN","value":""},{"name":"Test WIFI 2G4","value":""},{"name":"Test WIFI 5G","value":""},{"name":"Test FXS","value":""},{"name":"Test FXO","value":""},{"name":"Test DECT","value":""},{"name":"Led1","value":"OK"},{"name":"Led2","value":"KO"},{"name":"Led3","value":"KO"},{"name":"Led4","value":"KO"},{"name":"Led5","value":"OK"},{"name":"Led6","value":"OK"}]';
if(data == '')
return;
JSONToCSVConvertor(data, "Vehicle Report", false);
});
});
function JSONToCSVConvertor(JSONData, ReportTitle, ShowLabel) {
//If JSONData is not an object then JSON.parse will parse the JSON string in an Object
var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
var CSV = '';
//Set Report title in first row or line
CSV += ReportTitle + '\r\n\n';
//This condition will generate the Label/Header
/*if (ShowLabel) {
var row = "";
//This loop will extract the label from 1st index of on array
for (var index in arrData[0]) {
//Now convert each value to string and comma-seprated
row += index + ',';
}
row = row.slice(0, -1);
//append Label row with line break
CSV += row + '\r\n';
}*/
var title_row = "";
var j = 0;
arrData.forEach(function(data){
j++
title_row += '"' + data.name + '",';
if(arrData.length == j){
title_row = title_row.slice(0, title_row.length - 1);
title_row += '\r\n';
arrData.forEach(function(data){
title_row += '"' + data.value + '",';
});
}
});
title_row = title_row.slice(0,...