26. Automatización con datos de JSON
Puede utilizar datos en JSON para duplicar gráficos creados primero como plantilla y suministrarles una nueva hoja de datos. Puede controlar el orden en que se utilizan las plantillas específicas para crear una nueva presentación. Las plantillas también se pueden utilizar varias veces.
Tanto las plantillas de PowerPoint como los datos de JSON se pueden almacenar de forma local o remota. Los datos JSON se pueden incluso generar sobre la marcha por un servicio web.
- 26.1
- Estructura de datos JSON para think-cell
- 26.2
- Uso de datos JSON para crear una presentación
- 26.3
- Suministro de datos JSON de forma remota
- 26.4
- Suministro de la plantilla de forma remota
- 26.5
- Procesamiento de datos JSON de forma remota
26.1 Estructura de datos JSON para think-cell
A continuación se muestra un ejemplo de datos JSON para think-cell y se puede encontrar en el archivo sample.ppttc
en la subcarpeta ppttc
del directorio de instalación de think-cell. JSON especifica una presentación que se creará a partir de una concatenación de plantillas. Se ajusta al esquema en ppttc/ppttc-schema.json
.
En el nivel de base, hay una matriz de elementos. Cada elemento especifica un archivo de plantilla y datos para sus gráficos. Se pueden concatenar diferentes plantillas y una única plantilla se puede utilizar más de una vez. En el caso más simple, una única plantilla se utiliza una única vez para rellenar todos los gráficos contenidos en esa plantilla con datos.
Cada uno de los elementos de la matriz de plantillas concatenadas contiene dos claves: template
y data
. El valor correspondiente a template
es la ruta de acceso a un archivo de PowerPoint con gráficos de think-cell para el cual se ha establecido un nombre a modo de identificador (consulte 24. Introducción a la automatización). El archivo de plantilla también se puede recuperar desde una ubicación remota como se describe en Suministro de datos JSON de forma remota.
El valor de la clave data
es una lista de tablas de datos en formato JSON correspondientes a los gráficos contenidos en la plantilla. Cada elemento de la lista tiene dos propiedades: name
y table
. name
especifica un gráfico utilizando su nombre y table
contiene la tabla de datos.
La estructura del valor perteneciente a table
corresponde directamente a una hoja de datos sin transposición con filas que representan series y columnas que representan categorías. Para un gráfico predeterminado que significa el siguiente orden de filas estará representado:
- Primero una fila con una celda vacía (
null
) y luego celdas con nombres de categorías. - Una fila de valores 100 %. Si no se utilizan valores 100 %, la fila vacía se especifica como
[]
. - Varias filas con una primera celda que dan el nombre de la serie y las celdas posteriores que contienen valores numéricos.
Se puede hacer referencia en JSON a cualquier gráfico al que se pueda nombrar. Para su diseño específico de la hoja de datos, consulte su capítulo respectivo o simplemente abra la hoja de datos interna del gráfico a modo de referencia.
Nota: Las celdas comprendidas en el rango de la hoja de datos de think-cell pueden contener cualquier tipo de texto. Si lo desea, también puede llenarse la primera celda en la primera fila.
Los datos que componen el valor de una clave table
deben cumplir con ciertas reglas establecidas en el esquema. El valor para una clave table
en sí es una matriz. Los submatrices representan las filas de la hoja de datos. Las filas vacías se pueden especificar utilizando una matriz vacía []
. El contenido de una celda se describe mediante los elementos enumerados en dicha submatriz. El orden de los elementos corresponde al orden de las columnas en una hoja de datos. Una celda vacía debe describirse de forma explícita utilizando el elemento null
. Las celdas con contenido deben describirse utilizando otro par clave-valor. En este caso, la clave describe el tipo de datos y el valor contiene los datos reales que se mostrarán en la presentación. Tres tipos de datos diferentes son compatibles:
string
para cualquier tipo de texto. Todos los caracteres unicode imprimibles (UTF-8) son compatibles. Ejemplo: {"string":"Echo"}
number
para cualquier tipo de número. El separador decimal utilizado tiene que ser un punto. Ejemplo: {"number":"5"}
date
para fechas. El formato necesario es YYYY-MM-DD
. Ejemplo: {"date":"2016-09-04"}
Cualquier formato de los contenidos de las celdas (por ejemplo, especificación del formato de fecha) tiene que hacerse en la plantilla de PowerPoint.
En cuanto a campos de texto a los que se les haya asignado un nombre, el elemento table
consta de una “celda” en una “fila”, de modo que usted tiene que utilizar una matriz JSON, como en el fragmento siguiente, que aparecería una vez por cada campo de texto con nombre asignado que haya dentro de cualquier elemento data
:
26.2 Uso de datos JSON para crear una presentación
El archivo de datos JSON debe tener un tipo de archivo de .ppttc
. Al abrir un archivo como este:
- think-cell lee el archivo y verifica su integridad estructural.
- Se crea una nueva presentación. Para cada elemento en el nivel superior del archivo JSON, la nueva presentación contiene una copia de la plantilla especificada.
- En las copias de la plantilla, las hojas de datos de los gráficos identificados por los valores
name
se reemplazan con los datos en los valorestable
. Se actualizan todas las etiquetas totales, colocaciones de etiqueta y valores de flecha de diferencia u otras decoraciones de gráfico.
Después de esto, se muestra la nueva presentación. El usuario puede editar sus contenidos y guardarlos o usarlos de cualquier otra forma.
La línea de comandos también permite crear presentaciones a partir de datos JSON:
ppttc input.ppttc -o output.pptx
El ejecutable ppttc.exe
está ubicado en la carpeta de instalación de think-cell. La invocación de ppttc.exe
puede ser integrada con facilidad en los flujos de trabajo de automatización.
26.3 Suministro de datos JSON de forma remota
Los datos de JSON en el archivo .ppttc
también se pueden generar de forma remota a través de un servicio web y se le ofrece al usuario la posibilidad de descarga en un explorador web. Por favor, mire la muestra proporcionada a continuación y en sample.html
en la subcarpeta ppttc
del directorio de instalación de think-cell.
En nuestro ejemplo, los datos JSON se compilan sobre la marcha cuando el usuario solicita una descarga. Si bien el ejemplo incluye datos estáticos, puede, por supuesto, crear JSON dinámicamente a partir de otras orígenes de datos utilizando parámetros proporcionados por el usuario en su sitio web.
Si se descarga un archivo .ppttc
, el usuario puede elegir desde guardar el archivo o abrirlo de manera similar a otras descargas. Al abrir el archivo, los datos de JSON se utilizan para crear una nueva presentación como se describe en Uso de datos JSON para crear una presentación.
26.4 Suministro de la plantilla de forma remota
Los archivos de plantilla con gráficos de think-cell también se pueden proporcionar a través de un servidor remoto. En este caso, el valor de la clave template
es una URL en lugar de una ruta local, como se muestra en el ejemplo remoto anterior de JSON. La URL puede especificar http
como el protocolo,https
para una conexión segura o cualquier otro protocolo válido en el sistema donde se abre el archivo .ppttc
.
Al procesar un archivo .ppttc
que hace referencia a una plantilla remota, PowerPoint recupera el archivo de plantilla. Por ello, el usuario que abrió el archivo .ppttc
necesita un acceso apropiado a la plantilla remota.
Cuando los datos JSON se generan en remoto por medio de un servicio web y las plantillas también se almacenan en remoto, solo se necesita una instalación estándar de think-cell en el equipo del usuario para utilizar presentaciones de PowerPoint generadas de forma dinámica con gráficos de think-cell.
26.5 Procesamiento de datos JSON de forma remota
El procesamiento que think-cell realiza de datos JSON se puede efectuar como servidor. En ese caso, la combinación de datos JSON con plantillas para crear presentaciones de PowerPoint se realiza en un servidor remoto. El servidor acepta fragmentos JSON como entrada y genera las presentaciones de PowerPoint combinadas como salida, ambos a través del protocolo HTTP.
Para iniciar el servidor de think-cell, vaya a la carpeta de instalación y ejecute el archivo tcserver.exe. Se abre el cuadro de diálogo siguiente:
Para iniciar el servidor:
- Especifique en formato URL la dirección IP y el puerto en los que el servidor debe escuchar en el campo UrlPrefix. La primera parte de la URL determina si se utiliza protocolo sin cifrado (HTTP) o con cifrado (HTTPS).
- Haga clic en el botón Aplicar.
- Confirme los cambios de configuración de su sistema en el cuadro de diálogo Control de cuentas de usuario (UAC) que aparece.
En el campo Registro, situado en la parte inferior de la ventana, se ve la confirmación de que el servidor se ha iniciado y de que está a la escucha de una URL. Además, en el campo Registro se ven todas las solicitudes de cliente y respuestas del servidor.
Para detener el servidor, haga clic en el botón Eliminar. Para cambiar la URL, especifique una URL nueva en el campo UrlPrefix y haga clic en Aplicar.
El servidor acepta datos JSON a modo de solicitud HTTP POST con el tipo MIME application/vnd.think-cell.ppttc+json
y responde con archivos de PowerPoint.
Para comenzar a utilizar el servidor, copie la URL del campo UrlPrefix y ábrala en un navegador. Se abre una página de muestra. El servidor genera su propia documentación y el código fuente HTML de la página de muestra ilustra su uso y un ejemplo detallado. El ejemplo contiene los elementos enumerados a continuación:
- Marcado HTML para un botón que, al ser pulsado, invoca un método que utiliza
XMLHttpRequest
para comunicarse con el servidor. - Un fragmento JSON estático. En el uso que haga el usuario, lo que ocurre habitualmente es que este genera datos JSON de forma dinámica.
- Una función JavaScript para enviar los datos JSON al servidor. Genera la solicitud HTTP POST con los datos JSON estáticos. La respuesta del servidor se presenta al navegador en forma de descarga de archivos.
También funciona cualquier otro método con el que generar solicitudes POST HTTP y almacenar respuestas del servidor en forma de archivo de PowerPoint. En el uso que haga el usuario, este no está limitado al uso de JavaScript con ese fin.
Gráficos
-
4.Introducción a los gráficos
-
5.Entrada de datos
-
6.Etiquetas de texto
-
7.Gráfico de columnas, gráfico de líneas y gráfico de áreas
-
8.Decoraciones de gráficos
-
9.Gráfico en cascada
-
10.Gráfico Mekko
-
11.Gráfico circular y de anillos
-
12.Gráfico de burbujas y gráfico de dispersión
-
13.Gráfico de Gantt (escala de tiempo)