function openExport(Data, type, showFields) { // Data : {}. Can be any data you want to export (records, columns, custom, etc...). // type : string. Extension of file name 'xls' or 'csv' are possible. By default 'excel' format is done on array // showFields : boolean (optional). Insert field names on top of the file data. By default 'false' var arrData = typeof Data != 'object' ? JSON.parse(Data) : Data; fileName = header + '.' + type; var Data = ''; // show fields on first row ? if (showFields) { var row = ""; for (var index in arrData[0]) { if (row !="" && type =='csv') row +=','; row += index + '\t'; } row = row.slice(0, -1); Data += row + '\r\n'; } // Prepare array data format for (var i = 0; i < arrData.length; i++) { var row = ""; for (var index in arrData[i]) { if (row !="" && type =='csv') row +=','; row += (type == 'xls') ? '"' + arrData[i][index] + '"\t' : arrData[i][index] + '\t' } row.slice(0, row.length - 1); Data += row + '\r\n'; } // No data? if (Data == '') { w2alert('No Data Found'); return; } var link = document.createElement("a"); // browser with HTML5 support download attribute if (link.download !== undefined) { var uri = 'data:application/vnd.ms-excel,' + escape(Data); link.setAttribute ( 'href', uri); link.setAttribute('style', "visibility:hidden"); link.setAttribute ('download', fileName); document.body.appendChild(link); link.click(); document.body.removeChild(link); } // IE 10,11+ else if (navigator.msSaveBlob) { var blob = new Blob([Data], { "type": "text/csv;charset=utf8;" }); navigator.msSaveBlob(blob, fileName); } // old IE 9- remove this part ?? deprecated browsers ?? var ua = window.navigator.userAgent; var ie = ua.indexOf('MSIE '); if ((ie > -1)) { if (document.execCommand) { var oWin = window.open("about:blank","_blank"); oWin.document.write(Data); oWin.document.close(); var success = oWin.document.execCommand('SaveAs', true, fileName) oWin.close(); } } }Lihat via Github
Tags:
Tutorial Javascript