Introducción a Google Apps Script

Introduccion a Google Apps Script
— by

Google Apps Script es el módulo de programación de Google Suite y nos permite expandir las funcionalidades de todos nuestras aplicaciones Google, incluyendo Google Sheets. Aquí veremos que es y daremos nuestros primeros pasos

Que es Google Apps Script (GAS)

GAS es la abreviación de Google Apps Script la plataforma de desarrollo de aplicaciones de Google

Cuando la definimos así, suena intimidante

Pero la realidad es que Google Apps Script es básicamente un editor de código que nos permite hacer aplicaciones web, y al mismo tiempo conectarnos de manera muy fácil con aplicaciones de Google y aplicaciones de terceros.

Como acceder a GAS

Como cualquier aplicación de Google, podemos acceder a ella por varias rutas, entre ellas

  • Desde Google Drive
  • Desde Google Apps Script
  • Con script.new

Pero a diferencia de las demás aplicaciones, puedo acceder a ella directamente desde Google Sheets, Google Forms, Google Slides y Google Docs

La diferencia entre GAS autónomo y GAS «incluido»

Tenemos dos maneras de acceder a nuestros códigos: Con un archivo propio de GAS, desde el cual podemos crear nuestras plantillas HTML, o tenerlo incluido dentro de alguna de nuestras otras aplicaciones

Lo bueno de acceder a nuestros códigos, o como lo llama Google, a nuestros proyectos, es que ahí podemos ver todos nuestros códigos, tanto los «independientes» como los «embebidos»

Tipos de Archivos en GAS

Para que hablemos el mismo idioma, debemos entender ciertas palabras.

Proyecto

Un proyecto es el conjunto de códigos que hacen correr una aplicación, bien sea independiente o dentro de Sheets o Docs o Forms

Archivo de secuencia de comandos

Aquí es donde codificamos. Un proyecto puede tener varios archivos de secuencias de comando.

Se usa más para organizar un proyecto

Por ejemplo podemos tener uno para las funciones principales, otro para las utilidades, y así.

Piénsenlo como tener pestañas u hojas

Archivos HTML

Cuando queramos hacer aplicaciones Web o conectarnos con las interfases gráficas de las aplicaciones, vamos a necesitar archivos HTML.

Lo que se conoce como la interfase gráfica

Programar en GAS

El lenguaje de programación que utiliza GAS es JavaScript, entonces no les voy a enseñar JavaScript pero si vamos a ir rápidamente por todas las bases para que puedan empezar a programar

La ventaja de que esté en JavaScript y no sea un nuevo lenguaje, es que hay muchísima documentación en la web.

Primero veamos unas ayudas muy necesarias en nuestro proceso de programar

Comentarios

Aunque no es lo primero que se le viene a uno a la mente es muy importante saber que son y como se usan los comentarios porque nos ayudan a leer el código

Los comentarios son líneas de código que nos ayudan a entender el código pero no hacen nada. Como lo dice su nombre, son solo comentarios.

Para ingresar un comentario ponemos un doble slash (/) y escribimos lo que queramos

//Este es mi primer comentario

Si el comentario es más largo y puede saltarse varias líneas, usamos «/*» para abrir y «*/» para cerrar

/*
Este es un comentario mucho mas largo
Podria incluir mas renglones
Listas
Numeros
Ejempls
Etc
Pero no se les olvide cerrarlo
*/

Separador de línea

Aunque no es estrictamente necesario, el punto y coma «;» es un elemento que le ayuda a GAS a identificar cuando he terminado una línea o instrucción

Dado que algunas instrucciones toman varias líneas, el punto y coma no es solo útil para GAS sino para nosotros.

Al igual que los comentarios son ayudas para leer mejor el código.

El equivalente en español es el punto aparte.

Logger.log

Esta herramienta es muy útil para nuestros primeros programas y para comprobar los valores de alguna variable o arreglo en un momento específico de nuestro programa.

Simplemente escribimos Logger.log()

Y dentro de las paréntesis escribimos un texto, numero o variable

Por ejemplo:

Logger.log("Hola Mundo")

Para ver el registro, nos vamos a «Ver»>»Registro» (o Ctrl + Enter)

Y se vería algo así

Funciones

Las funciones son la base fundamental de crear cualquier cosa en GAS. La función es un mini programa.

Las funciones están compuestas de

  • Nombre (Obligatorio)
  • Argumentos (Opcional)
  • Instrucciones (Obligatorio)
  • Resultado (Opcional)

Nombre

Para el nombre debemos cumplir reglas similares a los nombres de las variables y siempre cerrar con un par de paréntesis. Algunos ejemplos:

  • traerDatos()
  • sumar_y_multiplicar()
  • crearnuevahoja()

Argumentos

Dentro del paréntesis pueden ir uno o más argumentos. Estos argumentos pueden ser variables, arreglos, objetos, rangos y más. Pero muchas funciones no tienen argumentos

Instrucciones

Aquí es donde usamos las variables, los arreglos y las operaciones

Lo interesante es que dentro de estas instrucciones, otras funciones y hasta la misma función (esto se llama una función recursiva, pero lo dejamos para el curso mega ultra avanzado de programación, que probablemente no haré)

Resultado

Muchas funciones simplemente realizan instrucciones que se reflejaran en nuestro Sheets, en mensajes, en operaciones, pero no necesariamente devuelven un valor o variables

Pero hay otras que si nos van a devolver algo que después vamos a utilizar en otra función.

Ejemplo

Veamos el ejemplo más sencillo utilizando Logger.log

function holaMundo(){
Logger.log("Hola mundo");
}

Variables

Las variables funcionan similar a cualquier otro lenguaje.

Simplemente creamos una variable con la palabra var le damos un nombre y le asignamos un valor

No hay necesidad de definir el tipo de variable, si es texto, número, arreglo, etc.

Sheets lo detecta automáticamente.

La característica principal de las variables, es, como su nombre lo indica, variables, y puedo estar cambiando su valor a medida que el programa se ejecuta

Ejemplos

//Creo la variable x y le asigno el valor de 1
var x=1

//Ahora x es 2
x=2;
//Creo la variable nomnbre y le asigno el valor "Juan Sebastian"
var nombre="Juan Sebastian";

//Ahora nomnbre tiene el valor "Andrea"
nombre="Andrea";
//Creo la variable ciudades y le asigno un arreglo con distintas ciudades
var ciudades = ["Bogotá","Medellin","Cartagena"]

//Ahora las ciudades son otras
ciudades = ["Barranquilla", "Cali"]

Algunas reglas de los nombres de las variables:

  • Pueden tener letras minúsculas, letras mayúsculas, números, signo pesos ($) y subrayado (_)
  • No pueden empezar por número
  • No pueden tener espacios
  • Cuando sean varias palabras se sugiere separar con mayúsculas o con subrayado (SumarNumeros o sumar_numeros)

Constantes

Las constantes se crean igual a las variables (pero con la palabra const).

La diferencia es que no se le puede asignar un valor después

Útil para números o textos que sé que nunca cambiaran durante una ejecución de mi código

Se acostumbra escribirlas en mayúsculas

const TASA_DE_CAMBIO = 4000

Para no enredarnos, sobre todo si somos principiantes, pueden usar solo variables

Arreglos

Los arreglos son conjuntos de variables dentro de corchetes o paréntesis cuadrados «[]», separando los elementos con comas «,»

Se crean igual que una variable, así

var numPrimos =[1,2,3,5,7]

Aunque profundizaremos en los arreglos en otro artículo, por ahora sepan que podemos referirnos a cualquier elemento del arreglo con el nombre del arreglo y la posición del elemento (teniendo en cuenta que la primera posición es la 0). Veamos un ejemplo

var numPrimos =["enero,"febrero","marzo"]

//Quiero acceder al mes marzo en la posicion 2
var mes = numPrimos[2]

Los arreglos también pueden ser de dos dimensiones, es decir, tener arreglos dentro de arreglos. Por ejemplo:

var clientes=[["Pedro","Colombia",25],["Andrea","España",32]]

Si quiero acceder a un cliente especifico, simplemente busco la posición de ese cliente, igual que en el ejemplo anterior

var clientes=[["Pedro","Colombia",25],["Andrea","España",32]]

//Quiero extraer el cliente Pedro, que esta en la posicion 0 de clientes
var cliente = clientes[0]

//Me va a devolver ["Pedro","Colombia",25]

Y si quiero acceder a la edad de Pedro me refiero primero a la posición del cliente y después a la posición de la variable edad dentro de ese cliente. En nuestro caso sería la posición 0 y 2

var clientes=[["Pedro","Colombia",25],["Andrea","España",32]]

/*Quiero extraer la edad de Pedro, que esta en la posicion 0 de clientes y 2 de Pedro */
var cliente = clientes[0][2]

//Me va a devolver 25

Conclusión

Nos falta mucho por ver en cuanto a GAS, pero con lo que ya vimos podemos empezar a hacer pequeños programas que hagan operaciones y nos muestre los resultados en un Logger.log

Mientras tanto vayan contándome sus barreras problemas y preguntas específicas

Suscríbete para acceder al curso «Descubriendo el poder de Google Sheets» y empezar tu camino a la maestría de Sheets, Forms y Apps Script

Boletín

Nuestras últimas noticias en tu correo electrónico

Respuestas

  1. Avatar de Daniel
    Daniel

    Hola, algún libro en español que recomiendes para aprender GAS desde cero para quienes no saben JavaScript (ni programar en otro lenguaje)?

    1. Avatar de jsguzmanb
      jsguzmanb

      Hola Daniel

      Uy ni idea. La verdad es que te recomiendo más hacer cursos online, porque es algo más visual

      No por recomendarte el mio, hay muchos más, gratis ypagos

      Saludos!

  2. Avatar de Verónica
    Verónica

    Hola, quiero a partir de los datos existentes en una planilla de cálculo generar otra. Me podrían ayudar?

    1. Avatar de jsguzmanb
      jsguzmanb

      Hola!

      Aquí te dejo un video

      https://youtu.be/2_CXXym2pLo

      Saludos!

      Saludos!

  3. Avatar de Adolfo Miguel
    Adolfo Miguel

    Hola,
    Como las utilizo luego en las planillas de google, principalmente en una celda de una planilla de calculo?

    Saludos y felicitaciones por todas los articulos.

    1. Avatar de jsguzmanb
      jsguzmanb

      Hola Adolfo

      Te recomiendo seguir con este artículo

      https://juansguzman.com/google-apps-script-desde-sheets-introduccion/

      Saludos!

  4. Avatar de Francisco Cifuentes
    Francisco Cifuentes

    EXCELENTE!

    1. Avatar de jsguzmanb
      jsguzmanb

      Mil gracias Francisco!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Pin It on Pinterest

Share This