Automatización con datos de JSON
- Inicio
- Recursos
- Manual del usuario
- think-cell Charts: Visualización de datos
- Automatización avanzada de informes
- Automatización con datos de JSON
Cree automáticamente presentaciones de think-cell con JavaScript Object Notation (JSON). Con la automatización JSON de think-cell, puede hacer lo siguiente:
- Rellene las plantillas de PowerPoint con datos (por ejemplo, títulos de diapositivas y gráficos)
- Reutilizar y reordenar plantillas para crear nuevas presentaciones
- Usar datos JSON y plantillas de PowerPoint de origen local o remoto
- Convertir los datos en tiempo real en nuevas presentaciones con un servicio web
Estructura de archivos JSON
Esta sección explica cómo estructurar el archivo JSON. Los fragmentos de un archivo de ejemplo, sample.ppttc, acompañan esta explicación. Consulte el ejemplo completo al final de esta sección (Ejemplo de JSON completo).
En la carpeta de instalación de think-cell, la carpeta ppttc contiene los siguientes archivos:
- El esquema JSON
ppttc-schema.json - La Plantilla de PowerPoint
template.pptx - El archivo de datos JSON
sample.ppttc
El archivo ppttc-schema.json describe las reglas que debe seguir un archivo .ppttc para crear una presentación de PowerPoint con think-cell.
El archivo template.pptx contiene elementos con nombre (consulte Automatización avanzada de informes). Una plantilla puede tener cualquier número de diapositivas.
El archivo sample.ppttc especifica:
- Las plantillas que think-cell utilizará para crear una nueva presentación
- El orden en que aparecerán las plantillas
- Los datos JSON que rellenan las plantillas
Especificar plantillas, elementos y sus datos
El ejemplo sample.ppttc muestra una matriz que representa una presentación de PowerPoint (consulte Ejemplo de JSON completo).
Plantillas
La matriz contiene una serie de objetos, cada uno de los cuales representa una copia de una plantilla de PowerPoint. En la nueva presentación, las plantillas aparecen en el orden especificado en la matriz. Si una plantilla tiene varias diapositivas, solo puede modificar el orden de estas editando la plantilla en PowerPoint.
En la matriz, cada objeto de plantilla debe tener dos propiedades: template y data.
template
La propiedad template es una cadena que especifica la plantilla de PowerPoint que desea utilizar. La cadena puede ser una de las siguientes:
- Si ha almacenado la plantilla localmente, especifique la ruta relativa o absoluta de la plantilla en el sistema de archivos local. El separador de directorio debe ser una barra diagonal inversa (\) en Windows, transformada en una barra diagonal inversa doble (\\) en JSON, o una barra diagonal (/) en macOS.
- Si ha almacenado la plantilla de forma remota, especifique la URL donde se almacena la plantilla (consulte Proporcionar plantillas de forma remota).
En el caso más sencillo, como se muestra en Ejemplo de JSON completo, la cadena template es solo el nombre de archivo de la plantilla de PowerPoint, dado que la plantilla está en la misma carpeta que el archivo .ppttc.
"template": "template.pptx",
data
La propiedad data es una matriz de objetos que especifica lo siguiente:
- Gráficos y otros elementos con un nombre AddRangeData (consulte Automatización avanzada de informes)
- Los datos que llenan estos elementos
Los objetos pueden aparecer en cualquier orden en la matriz data, independientemente de la posición de sus elementos correspondientes en la plantilla de PowerPoint.
"data": [ ... ]
Elementos
Cada objeto de la matriz data tiene dos propiedades:
nameespecifica el nombre de un elemento, que asigna usted en AddRangeData Name (consulte Automatización avanzada de informes).tableespecifica los datos que rellenan el elemento.
Si dos elementos tienen el mismo nombre, think-cell los rellena con los mismos datos.
El valor table es una matriz. La estructura de la matriz depende del tipo de elemento:
- Para un campo de texto de automatización, Harvey Ball o casilla de verificación, la matriz
tablecontiene una sola submatriz con un solo objeto. El objeto, como una cadena de texto o un número, rellena el campo de texto. - Para un gráfico o tabla, la matriz
tablecontiene submatrices que representan la hoja de datos del elemento.
{
"name": "RightChartTitle",
"table": [[{"string": "Our orders (10K)"}]]
},
{
"name": "LeftChart",
"table": [
[null, {"date": "2020-01-01"}, {"date": "2021-01-01"}, {"date": "2022-01-01"}, {"date": "2023-01-01"}, {"date": "2024-01-01"}, {"date": "2025-01-01"}],
[{"string": "Market headroom"}, {"percentage": 46.5}, {"percentage": 47}, {"percentage": 45}, {"percentage": 45}, {"percentage": 41}, {"percentage": 40.5}],
[],
[{"string": "Competitor 1"}, {"percentage": 0.5}, {"percentage": 1}, {"percentage": 5}, {"percentage": 2}, {"percentage": 4}, {"percentage": 4.5}],
[{"string": "Our brand"}, {"percentage": 53}, {"percentage": 52}, {"percentage": 50}, {"percentage": 53}, {"percentage": 55}, {"percentage": 55}]
]
},
Estructura de la hoja de datos del gráfico
Para un gráfico, cada submatriz de la matriz table representa una fila de la hoja de datos de un gráfico. Para ver el diseño específico de la hoja de datos de un gráfico, consulte el capítulo respectivo en el manual del usuario o abra la hoja de datos del gráfico como referencia (consulte Introducir datos en el gráfico). A continuación se describe la estructura de las filas de un gráfico predeterminado, como se especifica en el esquema JSON.
Primera fila
La primera fila es una submatriz que contiene etiquetas de categoría. Una primera celda vacía (null) precede a las etiquetas de categoría. Los datos de la primera celda no aparecen en el gráfico, por lo que pueden contener cualquier información.
[null, {"date": "2020-01-01"}, {"date": "2021-01-01"}, {"date": "2022-01-01"}, {"date": "2023-01-01"}, {"date": "2024-01-01"}, {"date": "2025-01-01"}],
Filas posteriores
Las siguientes filas son submatrices que contienen las etiquetas de serie y los puntos de datos del gráfico. El orden de los elementos en una submatriz corresponde al orden de las celdas en una fila de una hoja de datos. La primera celda de la fila contiene la etiqueta de serie, que suele ser una cadena. Las celdas posteriores de la fila deben contener números o, para los gráficos de Gantt, fechas.
[{"string": "Market headroom"}, {"percentage": 46.5}, {"percentage": 47}, {"percentage": 45}, {"percentage": 45}, {"percentage": 41}, {"percentage": 40.5}],
[],
[{"string": "Competitor 1"}, {"percentage": 0.5}, {"percentage": 1}, {"percentage": 5}, {"percentage": 2}, {"percentage": 4}, {"percentage": 4.5}],
[{"string": "Our brand"}, {"percentage": 53}, {"percentage": 52}, {"percentage": 50}, {"percentage": 53}, {"percentage": 55}, {"percentage": 55}]
Filas vacías
Para especificar una fila vacía, utilice una matriz vacía ([]).
En el fragmento anterior, la matriz vacía cambia la forma en que think-cell aplica la combinación de colores PowerPoint Theme a la serie del gráfico (consulte Esquema de relleno de gráficos). La combinación de colores asigna verde oscuro a la serie de la fila 3. Dejando la fila 3 en blanco, las series Competitor 1 y Our brand ahora están en las filas 4 y 5, a las que la combinación de colores asigna azul claro y azul oscuro, respectivamente.
Filas y columnas opcionales
En las hojas de datos de gráficos de la plantilla de PowerPoint, puede añadir o quitar filas y columnas opcionales (consulte Editar diseño de hoja de datos). Esto afecta a la forma en que think-cell interpreta los datos JSON en las filas y columnas correspondientes.
Por ejemplo, si añade la fila 100%= en una hoja de datos de gráfico, think-cell interpreta la segunda fila de datos JSON como los totales a partir de los cuales se calculan los porcentajes. Si omite la fila 100%=, como en este ejemplo, think-cell interpreta los datos JSON de la segunda fila como puntos de datos ordinarios.
La siguiente tabla resume las filas y columnas opcionales comunes, sus posiciones de hoja de datos y su configuración predeterminada. Para comprobar el diseño de datos de un gráfico específico, haga doble clic en el gráfico para abrir su hoja de datos.
|
Option |
Contents |
Datasheet position |
Default setting |
|---|---|---|---|
|
Series |
Etiquetas de series |
Columna 1 |
Seleccionado |
|
Category |
Etiqueta de categoría |
Fila 1 |
Seleccionado |
|
100%= |
Totales para cálculos de porcentaje |
Fila 2 (si Category está seleccionada) Fila 1 (si Category no está seleccionada) |
No seleccionado |
Campos de texto de automatización, Harvey balls y casillas de verificación
Al rellenar campos de texto de automatización, Harvey balls individuales y casillas de verificación individuales con datos JSON, think-cell espera una matriz table con una celda. Dentro de la matriz table, la celda se representa como una sola submatriz que contiene un solo objeto.
{
"name": "SlideTitle",
"table": [[{"string": "Competition: Germany"}]]
},
Si una Harvey ball o casilla de verificación forma parte de una tabla, simplemente especifique el contenido del elemento en su celda de tabla correspondiente.
Tipos de datos de celda
En un archivo .ppttc, las celdas pueden contener los siguientes tipos de datos.
|
Data type |
Key |
Example |
Notes |
|---|---|---|---|
|
Texto |
|
|
Todos los caracteres unicode imprimibles (UTF-8) son compatibles. |
|
Número |
|
|
El separador decimal debe ser un punto (.). |
|
Fecha |
|
|
Formato obligatorio: |
|
Porcentaje |
|
|
El separador decimal debe ser un punto (.). No incluya el signo de porcentaje (%). |
|
Color de relleno de celda de hoja de datos |
|
Hexagonal: RGB: |
Añada Para aplicar los colores de relleno de la hoja de datos a las funciones del gráfico, en la plantilla de PowerPoint, seleccione Use Datasheet Fill (consulte Esquema de relleno de gráficos). |
|
Celda vacía |
No aplicable |
|
No lo delimite |
Ejemplo de JSON completo
Vea el ejemplo completo de JSON de sample.ppttc a continuación:
[
{
"template": "template.pptx",
"data": [
{
"name": "SlideTitle",
"table": [[{"string": "Competition: Germany"}]]
},
{
"name": "LeftChartTitle",
"table": [[{"string": "Market share (2020–2025)"}]]
},
{
"name": "RightChartTitle",
"table": [[{"string": "Our orders (10K)"}]]
},
{
"name": "LeftChart",
"table": [
[null, {"date": "2020-01-01"}, {"date": "2021-01-01"}, {"date": "2022-01-01"}, {"date": "2023-01-01"}, {"date": "2024-01-01"}, {"date": "2025-01-01"}],
[{"string": "Market headroom"}, {"percentage": 46.5}, {"percentage": 47}, {"percentage": 45}, {"percentage": 45}, {"percentage": 41}, {"percentage": 40.5}],
[],
[{"string": "Competitor 1"}, {"percentage": 0.5}, {"percentage": 1}, {"percentage": 5}, {"percentage": 2}, {"percentage": 4}, {"percentage": 4.5}],
[{"string": "Our brand"}, {"percentage": 53}, {"percentage": 52}, {"percentage": 50}, {"percentage": 53}, {"percentage": 55}, {"percentage": 55}]
]
},
{
"name": "RightChart",
"table": [
[null, {"date": "2020-01-01"}, {"date": "2021-01-01"}, {"date": "2022-01-01"}, {"date": "2023-01-01"}, {"date": "2024-01-01"}, {"date": "2025-01-01"}],
[{"string": "Pending"}, {"number": 0, "fill": "#ff0000"}, {"number": 0, "fill": "#ff0000"}, {"number": 0, "fill": "#ff0000"}, {"number": 0, "fill": "#ff0000"}, {"number": 0, "fill": "#ff0000"}, {"number": 14, "fill": "#ff0000"}],
[null, {"number": 709}, {"number": 712}, {"number": 710}, {"number": 700}, {"number": 760}, {"number": 747}]
]
}
]
},
{
"template": "template.pptx",
"data": [
{
"name": "SlideTitle",
"table": [[{"string": "Competition: Canada"}]]
},
{
"name": "LeftChartTitle",
"table": [[{"string": "Market share (2022–2025)"}]]
},
{
"name": "RightChartTitle",
"table": [[{"string": "Our orders (1K)"}]]
},
{
"name": "LeftChart",
"table": [
[null, {"date": "2022-01-01"}, {"date": "2023-01-01"}, {"date": "2024-01-01"}, {"date": "2025-01-01"}],
[{"string": "Market headroom"}, {"percentage": 34}, {"percentage": 38}, {"percentage": 41}, {"percentage": 42}],
[{"string": "Competitor 2"}, {"percentage": 31}, {"percentage": 17}, {"percentage": 15}, {"percentage": 14}],
[{"string": "Competitor 1"}, {"percentage": 20}, {"percentage": 10}, {"percentage": 9}, {"percentage": 7}],
[{"string": "Our brand"}, {"percentage": 15}, {"percentage": 35}, {"percentage": 35}, {"percentage": 37}]
]
},
{
"name": "RightChart",
"table": [
[null, {"date": "2022-01-01"}, {"date": "2023-01-01"}, {"date": "2024-01-01"}, {"date": "2025-01-01"}],
[{"string": "Pending"}, {"number": 0, "fill": "#ff0000"}, {"number": 0, "fill": "#ff0000"}, {"number": 0, "fill": "#ff0000"}, {"number": 15, "fill": "#ff0000"}],
[null, {"number": 250}, {"number": 401}, {"number": 481}, {"number": 476}]
]
}
]
}
]
Crear presentaciones con datos JSON
Cuando think-cell está instalado, le indica a su sistema operativo que abra archivos .ppttc con think-cell. Para abrir archivos JSON con think-cell en el Explorador de archivos (Windows) o en Finder (macOS), por ejemplo, haciendo doble clic, utilice la extensión .ppttc.
Cuando se abre un archivo JSON, think-cell hace lo siguiente:
- think-cell lee el archivo y lo comprueba en busca de errores.
- think-cell crea una nueva presentación. La presentación consta de copias de las plantillas de diapositivas especificadas en la matriz de nivel superior del archivo JSON.
- En las copias de plantilla, think-cell rellena los elementos (identificados por
name) con sus datos correspondientes (especificados entable). Los elementos se actualizan en consecuencia. - La nueva presentación se abre en PowerPoint. Puede guardar o editar la presentación.
Crear presentaciones desde la línea de comandos
Cree una presentación a partir de los datos JSON de la línea de comandos introduciendo lo siguiente:
PPTTC_PATH PPTTC_INPUT -o PPTX_OUTPUT
Sustituya lo siguiente:
PPTTC_PATH: la ruta deppttc.exePPTTC_INPUT: la ruta de su archivo .ppttcPPTX_OUTPUT: el nombre del archivo .pptx que crea, precedido por la ruta donde desea guardarlo
El ejecutable ppttc.exe está ubicado en ppttc en la carpeta de instalación de think-cell. Llame a ppttc.exe en los guiones de automatización para crear nuevas presentaciones de PowerPoint.
Proporcionar datos JSON de forma remota
Genere datos JSON de forma remota para un archivo .ppttc en un servidor. Para crear una nueva presentación, el usuario descarga el archivo .ppttc desde un navegador web y lo abre con think-cell.
Para ver un ejemplo de cómo generar y descargar datos JSON con un servidor, en la carpeta de instalación de think-cell, consulte /ppttc/sample.html. El archivo sample.html contiene los elementos siguientes:
- Marca HTML para un botón que, al hacer clic en él, recopila datos JSON sobre la marcha
- Algunos datos JSON estáticos. En un caso de uso típico, los datos JSON provienen de otro origen.
- Una función JavaScript que descarga el archivo .ppttc en el ordenador del usuario
Después de que el usuario descargue el archivo .ppttc, puede guardarlo o abrirlo. Cuando el usuario abre el archivo, think-cell crea una nueva presentación utilizando los datos JSON (consulte Crear presentaciones con datos JSON).
Proporcionar plantillas de forma remota
Para proporcionar plantillas de PowerPoint a través de un servidor, haga lo siguiente:
- En el archivo JSON, proporcione una URL en lugar de una ruta local para la clave
template. El protocolo URL puede ser HTTP o HTTPS. - Asegúrese de que el usuario que abre el archivo .ppttc tenga acceso a la plantilla remota.
Una instalación estándar de think-cell en la máquina del usuario es suficiente para generar presentaciones de think-cell con plantillas y datos JSON remotos.
Crear presentaciones de forma remota
Configure flujos de trabajo automatizados en los que los usuarios descarguen presentaciones de think-cell con datos personalizados. Para descargar presentaciones, los usuarios solo necesitan un navegador web. No necesitan tener think-cell instalado en su ordenador.
La configuración de estos flujos de trabajo requiere el servidor de think-cell, que solo funciona en Windows. El servidor de think-cell toma los datos JSON como entrada y ofrece presentaciones de PowerPoint como salida.
Ejecutar el servidor de think-cell
Para iniciar el servidor de think-cell, siga estos pasos:
- En la carpeta de instalación de think-cell, ejecute
tcserver.exe. - Introduzca una URL que especifique la dirección IP y el puerto en el que el servidor debe escuchar. El protocolo del servidor es HTTP o HTTPS.
- Seleccione Register URL.
- Cuando se le solicite, permita que el servidor de think-cell realice cambios en su dispositivo.
Para detener el servidor de think-cell, siga estos pasos:
- Seleccione Unregister URL.
- Cuando se le solicite, permita que el servidor de think-cell realice cambios en su dispositivo.
El campo Log muestra lo siguiente:
- Confirmación de que el servidor ha empezado a escuchar o ha dejado de hacerlo en una URL
- Todas las solicitudes del cliente y respuestas del servidor
El servidor acepta datos JSON a modo de solicitudes HTTP POST con el tipo de medio (también llamado MIME) application/vnd.think-cell.ppttc+json y responde con archivos de PowerPoint.
Ejecutar como servicio de inicio automático
Para iniciar automáticamente el servidor de think-cell al encender el ordenador, siga estos pasos:
- En el cuadro de diálogo think-cell server, seleccione la opción Run as auto-start service.
- En Password, introduzca la contraseña de la cuenta nombrada en la opción Run as auto-start service.
¡Pruébelo!
Cree una presentación de PowerPoint con solo hacer clic en un botón utilizando nuestro ejemplo listo para usar.
- Inicie el servidor de think-cell con la URL
http://127.0.0.1:8080. - Abrir
http://127.0.0.1:8080en un navegador. - Se abrirá la página web “prueba ppttc”. Seleccione Send .ppttc to server and get .pptx.
El servidor de think-cell crea una presentación de PowerPoint a partir de datos JSON. El navegador descarga la presentación en su ordenador.
El código fuente HTML de la página “prueba ppttc” demuestra un posible uso de la automatización JSON de think-cell. El código fuente puede servir como punto de partida para su propio flujo de trabajo automatizado. El código contiene los elementos enumerados a continuación:
- Marcado HTML para un botón que, al pulsarlo, invoca un método que utiliza
XMLHttpRequestpara comunicarse con el servidor de think-cell. - Algunos datos JSON estáticos. En un caso de uso típico, los datos JSON provienen de otro origen.
- Una función JavaScript para enviar los datos JSON al servidor de think-cell. El servidor genera la solicitud HTTP POST con los datos JSON estáticos. La respuesta del servidor es una descarga de archivo.
La página “prueba ppttc” utiliza JavaScript para enviar solicitudes HTTP POST y guardar la respuesta del servidor de think-cell como archivo PowerPoint. Obviamente, otros idiomas también funcionan.