Extiende Hojas de cálculo de Google

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Google Apps Script le permite realizar tareas nuevas y geniales con Hojas de cálculo de Google. Puedes usar Apps Script para agregar menús personalizados, diálogos y barras laterales a Hojas de cálculo de Google. También te permite escribir funciones personalizadas para Hojas de cálculo y, también, integrar Hojas de cálculo con otros servicios de Google, como Calendario, Drive y Gmail.

La mayoría de las secuencias de comandos diseñadas para Hojas de cálculo de Google manipulan los arreglos a fin de interactuar con las celdas, filas y columnas de una hoja de cálculo. Si no estás familiarizado con los arreglos de JavaScript, Codecademy ofrece un excelente módulo de entrenamiento para arreglos. (Ten en cuenta que este curso no fue desarrollado por Google ni está asociado con Google).

Para obtener una introducción breve sobre el uso de Apps Script con Hojas de cálculo de Google, consulta la guía de inicio rápido de 5 minutos sobre macros, menús y funciones personalizadas.

Comienza ahora

Apps Script incluye API especiales que te permiten crear, leer y editar de manera programática Hojas de cálculo de Google. Apps Script puede interactuar con las Hojas de cálculo de Google de dos maneras: cualquier secuencia de comandos puede crear o modificar una hoja de cálculo si el usuario de la secuencia de comandos tiene los permisos adecuados para la hoja de cálculo, y una secuencia de comandos también se puede vincular a una hoja de cálculo, lo que le otorga a la secuencia de comandos capacidades especiales para modificar la interfaz de usuario o responder cuando se abre la hoja de cálculo. Para crear una secuencia de comandos vinculada, selecciona Extensiones > Apps Script en Hojas de cálculo de Google.

El servicio de Hojas de cálculo trata las Hojas de cálculo de Google como una cuadrícula que opera con arreglos bidimensionales. Para recuperar los datos de la hoja de cálculo, debes obtener acceso a la hoja de cálculo donde se almacenan los datos, obtener el rango en la hoja de cálculo que contiene los datos y, luego, obtener los valores de las celdas. Apps Script facilita el acceso a los datos mediante la lectura de datos estructurados en la hoja de cálculo y la creación de objetos de JavaScript para ellos.

Leer datos

Supongamos que tienes una lista de nombres y números de productos que almacenas en una hoja de cálculo, como se muestra en la imagen a continuación.

En el siguiente ejemplo, se muestra cómo recuperar y registrar los nombres y los números de los productos.

function logProductInfo() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  for (var i = 0; i < data.length; i++) {
    Logger.log('Product name: ' + data[i][0]);
    Logger.log('Product number: ' + data[i][1]);
  }
}

Visualiza los registros

Para ver los datos que se registraron, en la parte superior del editor de secuencias de comandos, haz clic en Registro de ejecución.

Escribir datos

Para almacenar datos, como un nombre y un número de producto nuevos en la hoja de cálculo, agrega el siguiente código al final de la secuencia de comandos.

function addProduct() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}

El código anterior agrega una fila nueva en la parte inferior de la hoja de cálculo, con los valores especificados. Si ejecutas esta función, verás una fila nueva agregada a la hoja de cálculo.

Interfaces de usuario y menús personalizados

Puedes personalizar Hojas de cálculo de Google si agregas menús personalizados, cuadros de diálogo y barras laterales. Para aprender los conceptos básicos de la creación de menús, consulta la guía de menús. Para obtener más información sobre cómo personalizar el contenido de los cuadros de diálogo, consulta la guía del servicio HTML.

También puedes adjuntar una función de secuencia de comandos a una imagen o dibujo dentro de una hoja de cálculo. La función se ejecutará cuando un usuario haga clic en la imagen o el dibujo. Para obtener más información, consulta Imágenes y dibujos en Hojas de cálculo de Google.

Si planeas publicar la interfaz personalizada como parte de un complemento, sigue la guía de estilo para mantener la coherencia con el estilo y el diseño del editor de Hojas de cálculo de Google.

Conectarse a Formularios de Google

Apps Script te permite conectar Formularios de Google con Hojas de cálculo de Google a través de los servicios de Formularios y Hoja de cálculo. Esta función puede crear automáticamente un formulario de Google a partir de los datos de una hoja de cálculo. Apps Script también te permite usar activadores, como onFormSubmit, para realizar una acción específica después de que un usuario responde el formulario. Si deseas obtener más información sobre cómo conectar Hojas de cálculo de Google con Formularios de Google, prueba la guía de inicio rápido de Administración de respuestas para Formularios de Google.

Formato

La clase Range tiene métodos como setBackground(color) para acceder y modificar el formato de una celda o un rango de celdas. En el siguiente ejemplo, se muestra cómo puedes establecer el estilo de fuente de un rango:

function formatMySpreadsheet() {
  // Set the font style of the cells in the range of B2:C2 to be italic.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange('B2:C2');
  cell.setFontStyle('italic');
}

Validación de datos

Apps Script te permite acceder a las reglas de validación de datos existentes en Hojas de cálculo de Google o crear reglas nuevas. Por ejemplo, en el siguiente ejemplo, se muestra cómo establecer una regla de validación de datos que permita solo números entre 1 y 100 en una celda.

function validateMySpreadsheet() {
  // Set a rule for the cell B4 to be a number between 1 and 100.
  var cell = SpreadsheetApp.getActive().getRange('B4');
  var rule = SpreadsheetApp.newDataValidation()
     .requireNumberBetween(1, 100)
     .setAllowInvalid(false)
     .setHelpText('Number must be between 1 and 100.')
     .build();
  cell.setDataValidation(rule);
}

Para obtener más detalles sobre cómo trabajar con reglas de validación de datos, consulta SpreadsheetApp.newDataValidation(), DataValidationBuilder y Range.setDataValidation(rule)

Gráficos

Apps Script te permite incorporar gráficos en una hoja de cálculo que representan los datos en un rango específico. En el siguiente ejemplo, se genera un gráfico de barras incorporado y se supone que tienes datos que se pueden representar en las celdas A1:B15:

function newChart() {
  // Generate a chart representing the data in the range of A1:B15.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var chart = sheet.newChart()
     .setChartType(Charts.ChartType.BAR)
     .addRange(sheet.getRange('A1:B15'))
     .setPosition(5, 5, 0, 0)
     .build();

  sheet.insertChart(chart);
}

Para obtener más información sobre cómo incorporar un gráfico en tu hoja de cálculo, consulta EmbeddedChart y compiladores de gráficos específicos, como EmbeddedPieChartBuilder.

Funciones personalizadas en Hojas de cálculo de Google

Una función personalizada es similar a una función de hoja de cálculo integrada, como =SUM(A1:A5), excepto que defines el comportamiento de las funciones con Apps Script. Por ejemplo, puedes crear una función personalizada, in2mm(), que convierte un valor de pulgadas a milímetros y, luego, usar =in2mm(A1) o =in2mm(10) en una celda para usar la fórmula en tu hoja de cálculo.

Para obtener más información sobre las funciones personalizadas, prueba la Guía de inicio rápido de 5 minutos sobre menús y funciones personalizadas o consulta la guía sobre funciones personalizadas más detallada.

Macros

Las macros son otra forma de ejecutar el código de Apps Script desde la IU de Hojas de cálculo de Google. A diferencia de las funciones personalizadas, puedes activarlas con una combinación de teclas o mediante el menú de Hojas de cálculo de Google. Para obtener más información, consulta Macros de Hojas de cálculo de Google.

Complementos para Hojas de cálculo de Google

Los complementos son proyectos de Apps Script diseñados especialmente que se ejecutan en Hojas de cálculo de Google y se pueden instalar desde el almacén de complementos de Hojas de cálculo de Google. Si desarrollaste una secuencia de comandos para Hojas de cálculo de Google y deseas compartirla con el mundo, Apps Script te permite publicar la secuencia de comandos como un complemento a fin de que otros usuarios puedan instalarla desde la tienda de complementos.

Activadores

Las secuencias de comandos que están vinculadas a un archivo de Hojas de cálculo de Google pueden usar activadores simples, como las funciones onOpen() y onEdit(), para responder automáticamente cuando un usuario que tiene acceso de edición a la hoja de cálculo abra o edite la hoja de cálculo.

Al igual que los activadores simples, los activadores instalables permiten que las Hojas de cálculo de Google ejecuten una función automáticamente cuando ocurre un evento determinado. Sin embargo, los activadores instalables ofrecen más flexibilidad que los activadores simples y admiten los siguientes eventos: abiertos, de edición, de cambio, de envío de formularios y basados en el tiempo (reloj).