Como seleccionar la fecha actual al abrir un spreadsheet con Google Apps Script

En muchas ocasiones nos puede ser útil que se haga una tarea automáticamente al abrir nuestro spreadsheet en referencia al día actual usando Google Apps Script: Marcar ciertas celdas, aplicar formatos, setear textos, etc...

En este ejemplo vamos a montar un sistema que cada día nos seleccione una columna con la fecha actual tal y como podemos ver en este imagen:

Autoselección de columnas



function onOpen()
{
   MarkToday();  
}

function MarkToday()
{
  var today = new Date();
  var today_day   = today.getDate();
  var today_month = today.getMonth();
  var today_year  = today.getFullYear();

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
  var range = sheet.getRange(1,1,1,sheet.getLastColumn() );
  var caption = range.getValues()[0];

  //Buscamos el indice de columna que nos concuerda con el dia actual
  var index = 0;
  for(var i = 0 ; i < caption.length ; ++i)
  {       
      var d = new Date(caption[i]);

      //Compensamos la diferencia horaria entre el servidor de Google y nuestra situación.
      //De no compensar esta diferencia nos puede marcar dias diferentes de los reales.
      d.setTime( d.getTime() + 12*60*60*1000 );

      if(today_day == d.getDate() && today_month == d.getMonth() && today_year == d.getFullYear())
      {
        index = i+1;
        break;
      }
  }

  //Eliminamos marcas que pudieramos tener
  range.setBackground("white");

  //Marcamos el dia actual
  sheet.getRange(1,index).setBackground("yellow");
}

Como podéis ver el código no es complicado y se puede adaptar a lo que necesitéis. Se os ocurre alguna otra funcionalidad que se podría aplicar?

No vaciléis en hacerme llegar vuestras dudas.

Nos vemos


No hay comentarios:

Publicar un comentario

Tal vez te interese