Como hacer un timestamp en una celda con Google Apps Script


En muchas ocasiones podemos necesitar un timestamp ( marca de tiempo ) en nuestros spreadsheets para tener controlado cuando alguien ha tocado una linea, o cuando se ha modificado una celda en concreto.

Hace ya tiempo os expliqué como obtener  la hora con Google Apps Script, ahora solo hemos de hacer que esta hora la podamos poner en una celda bajo ciertas condiciones.

Típica mente hay dos necesidades para hacer un timestamp. Para saber cuando alguien ha tocado una linea y para saber cuando alguien ha tocado una celda en concreto.

1. Como poner un timestamp cuando alguien toca una celda de nuestro spreadsheet
function Hora()
{
   var now     = new Date();
   var year    = now.getFullYear();
   var month   = now.getMonth() + 1;
   var day     = now.getUTCDate();
   var hora    = now.getHours();
   var minutos = now.getMinutes();

   var string = day + "/" + month + "/" + year + "-" + hora + ":" +  minutos;

   return string;
}

function onEdit(e)
{
    SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(1,1).setValue(Hora());
}

Como veis, el código no puede ser más sencillo. Cuando alguien edita algo manualmente, se activa el trigger onEdit, se selecciona la celda donde pondremos el timestamp y calculamos la hora actual. Fácil y sencillo


2. Como poner un timestamp cuando alguien toca una linea en concreto
function Hora()
{
   var now     = new Date();
   var year    = now.getFullYear();
   var month   = now.getMonth() + 1;
   var day     = now.getUTCDate();
   var hora    = now.getHours();
   var minutos = now.getMinutes();

   var string = day + "/" + month + "/" + year + "-" + hora + ":" +  minutos;

   return string;
}

function onEdit(e)
{
    var range = e.range;
    var row   = range.getRowIndex();
    var sheet = range.getSheet();
    sheet.getRange(row,1).setValue(Hora());
}

Como podéis ver en este sencillo ejemplo, en la primera celda de cada fila tenemos el timestamp de esa fila. Cada vez que alguien toque algo de esa fila el timestamp se actualizará.

No es más que una ligera modificación del primer caso que nos permite hacernos una idea como gestionar nuestro timestamps de forma diferente.

Se te ocurre algún otro caso en que sea interesante gestionar timestamps? No vaciles en hacerme llegar tus ideas o dudas.

Nos vemos!



No hay comentarios:

Publicar un comentario

Tal vez te interese