Crear archivo CSV con array de objecto en Javascript
A Pen by Luis Miguel F. on CodePen.
Crear archivo CSV con array de objecto en Javascript
A Pen by Luis Miguel F. on CodePen.
| function arrayObjToCsv(ar) { | |
| //comprobamos compatibilidad | |
| if(window.Blob && (window.URL || window.webkitURL)){ | |
| var contenido = "", | |
| d = new Date(), | |
| blob, | |
| reader, | |
| save, | |
| clicEvent; | |
| //creamos contenido del archivo | |
| for (var i = 0; i < ar.length; i++) { | |
| //construimos cabecera del csv | |
| if (i == 0) | |
| contenido += Object.keys(ar[i]).join(";") + "\n"; | |
| //resto del contenido | |
| contenido += Object.keys(ar[i]).map(function(key){ | |
| return ar[i][key]; | |
| }).join(";") + "\n"; | |
| } | |
| //creamos el blob | |
| blob = new Blob(["\ufeff", contenido], {type: 'text/csv'}); | |
| //creamos el reader | |
| var reader = new FileReader(); | |
| reader.onload = function (event) { | |
| //escuchamos su evento load y creamos un enlace en dom | |
| save = document.createElement('a'); | |
| save.href = event.target.result; | |
| save.target = '_blank'; | |
| //aquí le damos nombre al archivo | |
| save.download = "log_"+ d.getDate() + "_" + (d.getMonth()+1) + "_" + d.getFullYear() +".csv"; | |
| try { | |
| //creamos un evento click | |
| clicEvent = new MouseEvent('click', { | |
| 'view': window, | |
| 'bubbles': true, | |
| 'cancelable': true | |
| }); | |
| } catch (e) { | |
| //si llega aquí es que probablemente implemente la forma antigua de crear un enlace | |
| clicEvent = document.createEvent("MouseEvent"); | |
| clicEvent.initEvent('click', true, true); | |
| } | |
| //disparamos el evento | |
| save.dispatchEvent(clicEvent); | |
| //liberamos el objeto window.URL | |
| (window.URL || window.webkitURL).revokeObjectURL(save.href); | |
| } | |
| //leemos como url | |
| reader.readAsDataURL(blob); | |
| }else { | |
| //el navegador no admite esta opción | |
| alert("Su navegador no permite esta acción"); | |
| } | |
| }; | |
| var miArrayDeObjetos = [ | |
| { CODE: "ORA-00001", ERROR: "unique constraint (string.string) violated", DATE: "2015-10-01" }, | |
| { CODE: "ORA-00017", ERROR: "session requested to set trace event", DATE: "2015-10-29" }, | |
| { CODE: "ORA-02142", ERROR: "missing or invalid ALTER TABLESPACE option", DATE: "2015-11-09" }, | |
| { CODE: "ORA-19500", ERROR: "device block size string is invalid", DATE: "2015-11-14" } | |
| ]; | |
| arrayObjToCsv(miArrayDeObjetos); |