viernes, 25 de enero de 2013

JavaScript: Mi mejor aliado



Es increible en todo lo que me ayuda JavaScript. Su último rescate fue ayudarme a obtener un sencillo reporte cuyos datos estaban en un grupo de  Google Apps. El panel de administración gratuito de Google Apps lista los miembros de los grupos de 30 en 30 y no te pemite navegar fácilmente entre las páginas. Lo datos que debía obtener eran el correo electrónico y la función del miembro dentro del grupo.



Listado de los miembro de un grupo en el panel de Google Apps
El problema es obtener los datos, con un simple copiar y pegar no me resultó; iba a tardar mucho acomando los datos de 8 páginas.  En la imagen de abajo veran el resultado en Notepad. El resultado en Excel no se lo muestro porque la situación se complica aun más.




Los datos depués de pegarlos en Notepad

Con la ayuda de un sencillo script que ejecuto desde la consola de las herramientas para desarrolladores de IE9 (F12) logré extraer lo datos, ubicarlos en una tabla al final de la página y luego a copiar y pegar en Excel para darle forma al reporte.

El resulado del script

Acá les dejo el script:

//Obtenemos todas las tablas que hay en la página
rTables = document.getElementsByTagName("TABLE");

//La tercera tabla es la que contiene los datos
rTable = rTables[3];

//Creamos una nueva tabla para acomodar los datos
rs = document.createElement("TABLE");

//Recorro los datos para acomodarlos
for(i = 2; i < rTable.rows.length-1; i++)
{
 r = rs.insertRow(-1);
 c = r.insertCell(-1);
 c.innerText = rTable.rows[i].cells[2].innerText
 c = r.insertCell(-1);
 c.innerText = rTable.rows[i].cells[3].innerText
}

//Inserto los datos reacomodados al final de la página
document.getElementsByTagName("BODY")[0].appendChild(rs);
´