Tutorial: Creación y formato de una tabla de Excel

Este tutorial le enseña los conceptos básicos de grabación, edición y escritura de un script de Office para Excel. Va a grabar un script que dé formato a una hoja de cálculo con registros de ventas. A continuación, editará el script grabado para dar más formato, crear una tabla y ordenar la tabla. Este método de grabar y luego editar le permite ver el código que resulta de las acciones que ha realizado en Excel.

Requisitos previos

Necesitará acceso a scripts de Office para este tutorial. Revise el soporte técnico de la plataforma si no aparece la pestaña Automatizar.

Importante

Este tutorial está diseñado para las personas con conocimientos de nivel intermedio de JavaScript o TypeScript. Si no está familiarizado con JavaScript, le recomendamos que comience con el Tutorial de JavaScript de Mozilla. Para obtener más información sobre el entorno de los scripts, visite Entorno del Editor de código de Scripts de Office.

Agregar datos y grabar un script básico

En primer lugar, necesitará algunos datos y un pequeño script inicial.

  1. Cree un nuevo libro de Excel.

  2. Copie los siguientes datos de ventas de frutas y péguelos en la hoja de cálculo, comenzando por la celda A1.

    Fruta 2018 2019
    Naranjas 1000 1200
    Limones 800 900
    Limas 600 500
    Pomelos 900 700
  3. Abra la pestaña Automatizar. Si no ve la pestaña Automatizar, seleccione la flecha desplegable para comprobar el desbordamiento de la cinta de opciones. Si aún no aparece, siga los consejos del artículo Solución de problemas de Scripts de Office.

  4. Seleccione el botón Guardar acciones.

  5. Seleccione las celdas A2:C2 (la fila "Naranjas") y configure el color de relleno como naranja.

  6. Detenga la grabación seleccionando el botón Detener.

    La hoja de cálculo debe tener este aspecto (no se preocupe si el color es diferente):

    Una hoja de cálculo donde se muestra la fila de datos de ventas de fruta con la fila que contiene «Naranjas» resaltada en color naranja.

Editar un script existente

El script anterior pinta la fila "Naranja" de color naranja. Agregue una fila amarilla para los "Limones".

  1. En el panel Detalles ya abierto, seleccione el botón Editar.

  2. Debería ver algo parecido a este código:

    function main(workbook: ExcelScript.Workbook) {
      // Set fill color to FFC000 for range Sheet1!A2:C2
      let selectedSheet = workbook.getActiveWorksheet();
      selectedSheet.getRange("A2:C2").getFormat().getFill().setColor("FFC000");
    }
    

    Este código obtiene la hoja de cálculo actual del libro. Después, establece el color de relleno del rango A2:C2.

    Los rangos son una parte fundamental de los scripts de Office en Excel. Un rango es un bloque de celdas contiguo y rectangular que contiene valores, fórmulas y formatos. Constituyen la estructura básica de las celdas y se usan para realizar la mayoría de las tareas de scripts.

  3. Agregue la línea siguiente al final del script (entre el lugar en el que se establece el color y aparece el } de cierre):

    selectedSheet.getRange("A3:C3").getFormat().getFill().setColor("yellow");
    
  4. Para probar el script, seleccione Ejecutar. El libro tendrá ahora el siguiente aspecto:

     Una hoja de cálculo donde se muestra una fila de datos de ventas con la fila «Naranjas» resaltada en naranja y la fila «Limones» resaltada en amarillo.

Crear una tabla

A continuación, convierta estos datos de ventas de frutas en una tabla. Seguirá modificando el primer script para todo el tutorial.

  1. Agregue la línea siguiente al final del script (antes del } de cierre):

    let table = selectedSheet.addTable("A1:C5", true);
    
  2. Esa llamada devuelve un objeto de Table. Use esa tabla para ordenar los datos. Ordene los datos en orden ascendente en función de los valores de la columna "Fruit". Agregue la siguiente línea después de la creación de tabla:

    table.getSort().apply([{ key: 0, ascending: true }]);
    

    Su script debe tener este aspecto:

    function main(workbook: ExcelScript.Workbook) {
        // Set fill color to FFC000 for range Sheet1!A2:C2
        let selectedSheet = workbook.getActiveWorksheet();
        selectedSheet.getRange("A2:C2").getFormat().getFill().setColor("FFC000");
        selectedSheet.getRange("A3:C3").getFormat().getFill().setColor("yellow");
        let table = selectedSheet.addTable("A1:C5", true);
        table.getSort().apply([{ key: 0, ascending: true }]);
    }
    

    Las tablas tienen un objeto TableSort al que se accede mediante el método Table.getSort. Puede aplicar un criterio de ordenación a ese objeto. El método apply acepta una matriz de objetos SortField. En este caso, solo tiene un criterio de ordenación, por lo que solo se usa un SortField. key: 0 establece los valores que definen la ordenación de la columna como "0" (que es la primera columna de la tabla A en este caso). ascending: true ordena los datos de menor a mayor (en lugar de mayor a menor).

  3. Ejecute el script. Debería ver una tabla como esta:

    Una hoja de cálculo donde se muestra la tabla de ventas de frutas ordenadas.

    Nota:

    Si vuelve a ejecutar el script, se producirá un error. Esto se debe a que no se puede crear una tabla encima de otra. Sin embargo, puede ejecutar el script en otra hoja de cálculo o en un libro.

Ejecute el script de nuevo

  1. Crear una nueva hoja de cálculo en el libro actual.
  2. Copie los datos de frutas del principio del tutorial y péguelos en la nueva hoja de cálculo, comenzando en la celda A1.
  3. Ejecute el script.

Pasos siguientes

Tutorial completo: Limpieza y normalización de los datos del libro de Excel. En él aprenderá a leer datos de un libro con un script de Office.