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.
Cree un nuevo libro de Excel.
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 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.
Seleccione el botón Guardar acciones.
Seleccione las celdas A2:C2 (la fila "Naranjas") y configure el color de relleno como naranja.
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):
Editar un script existente
El script anterior pinta la fila "Naranja" de color naranja. Agregue una fila amarilla para los "Limones".
En el panel Detalles ya abierto, seleccione el botón Editar.
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.
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");
Para probar el script, seleccione Ejecutar. El libro tendrá ahora el siguiente aspecto:
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.
Agregue la línea siguiente al final del script (antes del
}
de cierre):let table = selectedSheet.addTable("A1:C5", true);
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étodoTable.getSort
. Puede aplicar un criterio de ordenación a ese objeto. El métodoapply
acepta una matriz de objetosSortField
. En este caso, solo tiene un criterio de ordenación, por lo que solo se usa unSortField
. Elkey: 0
valor establece la columna con los valores de definición de ordenación en "0" (que es la primera columna de la tabla, la columna A en este caso). Elascending: true
valor ordena los datos en orden ascendente (en lugar de en orden descendente).Ejecute el script. Debería ver una tabla como esta:
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 tabla. Sin embargo, puede ejecutar el script en otra hoja de cálculo o libro.
Ejecute el script de nuevo
- Crear una nueva hoja de cálculo en el libro actual.
- Copie los datos de frutas del principio del tutorial y péguelos en la nueva hoja de cálculo, comenzando en la celda A1.
- 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.