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,...