Hoy toca enseñar un código muy sencillo en Google Apps Scripts pero que tiene bastante utilidad. Hoy os enseñaré a eliminar filas vacías en un spreadsheet.
No lo haré de la manera más eficiente que existe, pero si de la manera más clara, y para los casos "normales" a los que os enfrentareis normalmente os tendría que ir razonablemente bien de velocidad.
Aquí tenéis el código:
function EraseEmptyRows()
{
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
for(var i = 0 ; i < sheet.getLastRow() ; ++i)
{
if( sheet.getRange(i+1, 1).getValue() == "" )
{
sheet.deleteRow(i+1);
i--;
SpreadsheetApp.flush();
}
}
}
{
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
for(var i = 0 ; i < sheet.getLastRow() ; ++i)
{
if( sheet.getRange(i+1, 1).getValue() == "" )
{
sheet.deleteRow(i+1);
i--;
SpreadsheetApp.flush();
}
}
}
Fijaos que uso deleteRow para eliminar la fila en cuestión, el i-- es para volver a la posición donde estaba y poder seguir inspeccionando el siguiente elemento y que uso también el flush().
La función SpreadsheetApp.flush() os la expliqué en el artículo que hablaba sobre como forzar la escritura en un spreadsheet y básicamente lo que hace es obligar a google a que pare el código hasta que los cambios que hemos hecho en el spreadsheet hayan aplicado.
En nuestro caso es vital dado que sino estariamos borrando rows que no serian los que tocarían.
No vaciléis en hacerme llegar vuestras dudas y propuestas.
Nos vemos
No hay comentarios:
Publicar un comentario