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); |