Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save lmfresneda/64101b73efe10ef8b6fd to your computer and use it in GitHub Desktop.
Save lmfresneda/64101b73efe10ef8b6fd to your computer and use it in GitHub Desktop.
Crear archivo CSV con array de objecto en Javascript
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);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment