Tag Archive: Javascript


Vamos a seguir con una forma muy practica de asignar un valor a una o rango de celdas. Para aclarar lo de Rango, lo podemos definir como una selección de 1 a n celdas, siendo esta selección siempre conjunta y consecutiva de manera de formar un rectángulo. Es decir podemos seleccionar las celdas b1, b2, b3,  c1, c2, y c3, pero no b1, b2, b3, y d8.

Aclarado lo que queremos entender por Rango, retomamos nuestra serie de códigos. En la función onOpen(), incluimos la siguiente linea :

 {name: "Rellenar Celdas", functionName: "rellenarCeldas"},

La función quedaría así:

function onOpen() {
 var planilla = SpreadsheetApp.getActiveSpreadsheet();
 var itemsDeAcciones = [
 {name: "Rellenar Celdas", functionName: "rellenarCeldas"},
 {name: "Recordar mi Email", functionName: "recordarEmail"},
 {name: "Pedir Nacionalidad", functionName: "pedirNacionalidad"}];
 planilla.addMenu(“Acciones”, itemsDeAcciones);
}

Ahora que ya tenemos nuestro nueva acción en el menú, vamos a establecer la funcionalidad propiamente dicha:

function rellenarCeldas() {
  var rellenar = Browser.inputBox("Rellenar las Celdas con:");
  SpreadsheetApp.getActiveRange().setValue(rellenar);
}

Paso a explicar el código de las siguiente forma. Se define una nueva función como habíamos aprendido anteriormente, se establece una nueva variable rellenar con la información que suministre el usuario a través de un cuadro de diálogo con el método inputBox(). Luego para el documento actual, se obtiene el Rango de Celdas seleccionadas con el método getActiveRange(), y a las mismas se les asigna un valor dado setValue().

Cabe recordar que para la prueba del ejemplo el usuario antes de elegir la acción del menú, debería hacer su selección de celdas.

Como siempre, para probar todo esto, guardamos el código en el editor, y recargamos la página en el navegador.

Antes de pensar que hoy hemos terminado, pensemos en que otras formas podemos asignar valores a una celda. Pensemos en poder indicar la celda y su valor. Reiniciamos entonces en la función onOpen(), incluimos la siguiente linea :

 {name: "Asignar Valor", functionName: "asignarValor"},

La función quedaría así:

function onOpen() {
 var planilla = SpreadsheetApp.getActiveSpreadsheet();
 var itemsDeAcciones = [
 {name: "Asignar Valor", functionName: "asignarValor"},
 {name: "Rellenar Celdas", functionName: "rellenarCeldas"},
 {name: "Recordar mi Email", functionName: "recordarEmail"},
 {name: "Pedir Nacionalidad", functionName: "pedirNacionalidad"}];
 planilla.addMenu(“Acciones”, itemsDeAcciones);
}

Ahora que ya tenemos nuestro nueva acción en el menú, vamos a establecer la funcionalidad propiamente dicha:

function asignarValor() {
  var planilla = SpreadsheetApp.getActiveSpreadsheet();
  var celda = Browser.inputBox("Indique la Celda:");
  var valor = Browser.inputBox("Indique el Valor:");

  if (typeof valor != "number") {
    // comprobamos que valor sea un número
    Browser.msgBox("El Valor ingresado, no es un número");
  } else {
    planilla.getRange(celda).setValue(valor);
    Browser.msgBox("Se ha asignado a la celda " + celda + ", el valor numérico " + valor );
  }

}

Paso a explicar el código de las siguiente forma. En realidad, salvo la última linea las demás ya son conocidas; lo único que introducimos en este ejemplo es el uso del método getRange(). Además hemos empleado un condicional if y de la palabra reservada typeof . Ambas se explican por sí mismas, pero sino, no se preocupen. Estas son las razones por las que Google eligió Javascript, existe un millón uno de tutoriales que explicarán mejor que este servidor su utilidad.

Para completar el tutorial anterior, lo mejor es asignar un sentido a cada acción del menu creado.

Con el siguiente código, habíamos creamos una función que se ejecutará automáticamente cada vez que la planilla se recargue.

function onOpen() {
// Esto es un comentario
}

Lo que este entre “{” y “}”, será parte de esta función onOpen().

Entonces editamos la función onOpen() para que quede de la siguiente forma. Las lineas que empiezan con “//” son lineas de comentarios que explican la linea de código debajo de ellas y por ende son ignoradas

function onOpen() {
 var planilla = SpreadsheetApp.getActiveSpreadsheet();
 var itemsDeAcciones = [
 {name: "Recordar mi Email", functionName: "recordarEmail"},
 {name: "Pedir Nacionalidad", functionName: "pedirNacionalidad"}];
 planilla.addMenu(“Acciones”, itemsDeAcciones);
}

Declaramos una variable “planilla” que representará a la hoja activa de nuestro documento

var planilla = SpreadsheetApp.getActiveSpreadsheet();

Declaramos los items de nuevo menu a crear, los mismo se contiene en una variable “acciones”

var itemsDeAcciones  = [

Declara cada item, con “name” establecemos que aparece,  con “functionName” establecemos que función debe ejecutarse

{name: "Recordar mi Email", functionName: "recordarEmail"}

A la planilla de nuestro documento ahora le agregamos un menu ( método addMenu() ), que se llame “Acciones”, que tendra como items lo anteriormente declarado en “itemsDeAcciones”

planilla.addMenu(“Acciones”, itemsDeAcciones);

Note que revisando las dos lineas que más se parecen, la única diferencia es que la última no termina con una coma (,).

Ahora es turno de escribir las dos nuevas funciones :

function recordarEmail() {
 var email = Session.getUser().getEmail();
 Browser.msgBox("Tu dirección de email es : " + Session.getUser().getEmail() );
} 

En la anterior función, solo reportamos un cuadro de diálogo con Browser.msgBox(), que muestre una leyenda mas tu dirección de correo electrónico

function pedirNacionalidad() {
 var nacion = Browser.inputBox("Indique su Nacionalidad:");
 Browser.msgBox("Gracias, la nacionalidad ingresada fue : " + nacion);
}

Aquí, un cuadro de diálogo con Browser.inputBox() pide que el usuario ingrese un dato, el mismo se guarda en la variable nacion y luego se informa junto a una leyenda para darle sentido.

Para empezar con un ejemplo simple, lo mejor es hacerlo también con uno que nos sirva para el resto de los ejemplos.

En esta primera oportunidad, crearemos una opción más para el MENU.

Vamos al editor, y en el cuerpo del mismo pegamos este código:

function onOpen() {
  var planilla = SpreadsheetApp.getActiveSpreadsheet();
  var itemsDeAcciones= [ 
    {name: "Primera Accion", functionName: "primerAccion"},
    {name: "Segunda Accion", functionName: "segundaAccion"},
    {name: "Tercera Accion", functionName: "terceraAccion"}
  ];
  planilla.addMenu("Acciones", itemsDeAcciones);
}

Guardamos el anterior script ( MENU ARCHIVO > GUARDAR ), y seguramente nos preguntara que nombre le daremos al archivo. De ustedes depende.

Cerramos el editor, y recargamos nuestra planilla de calculo.

Notarán al cabo de unos segundo un MENU ACCIONES, al lado de AYUDA.

¡Felicitaciones! han logrado pasar el primer tutorial.

Desde Google Docs, la empresa de la gran G, nos brinda una suite de soluciones increíbles e impensadas hasta hace poco. Tener una herramienta de ofimática colaborativa a costo de una conexión de Internet, parece ser el sueño de todo apasionado por la tecnología, sea un avanzado usuario o un interesado casual.

Ahora tenemos la posibilidad de agregar funcionalidades a nuestras planillas, al mejor estilo de los programadores.

GOOGLE APPS SCRIPTS, en adelante Google Scripts o GS, nos ofrece la oportunidad de crear soluciones para las mas diversas de nuestras necesidades. Y lo mejor de todo es que Google, sigue mejorando día a día esta tecnología. El lenguaje para aprovechar el poder ofrecido por la API de Google es, JAVASCRIPT. Un viejo amigo de los programadores y diseñadores web desde hace más de una década. Un poco olvidado en una época, pero resurgido de las cenizas con toda la movida de las Web 2.0, y navegadores web mas poderosos, como nuestro querido Mozilla Firefox. En la web, hay tutoriales a montones de como aprender esta tecnología.

Para empezar con ejemplos, suponemos que tenemos establecido al español nuestro perfil, y que para acceder al editor de javascript, usamos el menú HERRAMIENTAS > SECUENCIAS DE COMANDOS > EDITOR DE SECUENCIAS DE COMANDOS …

Vamos a establecer una lista de accesos a los ejemplos ahora mismo para los mas ansiosos:

1) Creando un Menú de Acciones Personalizado
2) Cuadro de Dialogo: Pidiendo e Informando
3) Dando valor a un Rango de Celdas
4) Conociendo quienes somos
5)