23. Automatización con datos 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.

Puede preparar una biblioteca de todos los tipos de gráficos que necesite y, según sea necesario, versiones con diferentes decoraciones de gráficos habilitadas. A continuación, puede combinar libremente estas plantillas y suministrarles datos para la utilización en una nueva presentación.

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.

23.1
Estructura de los datos JSON para think-cell
23.2
Utilizando los datos JSON para crear una presentación
23.3
Proporcionar los datos de JSON de forma remota
23.4
Proporcionar la plantilla de forma remota

23.1 Estructura de los 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.

ejemplo de archivo JSON para la automatización de think-cell

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 elemento en la matriz de plantillas concatenadas contiene dos claves: image plantilla y image datos. El valor para la image plantilla es la ruta a un archivo de PowerPoint con gráficos de think-cell, para los cuales se ha establecido un nombre como identificador (consulte Introducción a la automatización). El archivo de plantilla también se puede recuperar desde una ubicación remota como se describe en Proporcionar la plantilla de forma remota.

El valor de la clave image datos es una lista de tablas de datos en formato JSON para los gráficos contenidos en la plantilla. Cada elemento en la lista tiene dos propiedades: image nombre y image tabla. El image nombre especifica un gráfico utilizando su nombre y la image tabla contiene la tabla de datos.

La estructura del valor para la image tabla 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:

1.
Primero una fila con una celda vacía (null) y luego celdas con nombres de categorías.
2.
Una fila de valores 100 %=. Si no se utilizan valores 100 %=, la fila vacía se especifica como image [].
3.
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, vea su capítulo respectivo o simplemente abra la hoja de datos interna del gráfico como 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:

  • image cadena para cualquier tipo de texto. Todos los caracteres unicode imprimibles (UTF-8) son compatibles. Ejemplo: {"string":"Echo"}
  • image número para cualquier tipo de número. El separador decimal utilizado tiene que ser un punto. Ejemplo: {"number":"5"}
  • image fecha 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.

23.2 Utilizando los 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:

1.
think-cell lee el archivo y verifica su integridad estructural.
2.
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.
3.
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.

23.3 Proporcionar los datos de 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.


<!DOCTYPE html> 
<html> 
<body> 
 
<h1>ppttc test</h1> 
 
<button type="button" onclick="myFunction()"> 
Download .ppttc 
</button> 
 
<a id="downloader" style="display:none"/> 
 
<script> 
function myFunction() { 
  var obj = [ 
    { 
      template : "https://static.think-cell.com/ppttc/template.pptx", 
      data: [ 
        { 
          name: "Chart1", 
          table: [ 
            [null, {string:"Alpha"},{string:"Bravo"},{string:"Charlie"}], 
            [], 
            [{string:"Delta"},{number:1},{number:2},{number:3}], 
            [{string:"Echo"},{number:4},{number:5},{number:6}] 
          ] 
        }, 
        { 
          name: "Chart2", 
          table: [ 
            [null, {date:"2016-09-03"},{date:"2016-09-04"},{date:"2016-09-05"}], 
            [], 
            [{string:"Foxtrot"},{number:7},{number:8},{number:9}], 
            [{string:"Gulf"},{number:10},{number:11},{number:12}] 
          ] 
        } 
      ] 
    } 
  ]; 
  var elemDownloader = document.getElementById("downloader"); 
  elemDownloader.setAttribute("href","data:application/vnd.think-cell.ppttc+json;charset=utf-8," 
    + encodeURIComponent(JSON.stringify(obj))); 
  elemDownloader.setAttribute("download", "sample.ppttc"); 
  elemDownloader.click(); 
} 
</script> 
 
</body> 
</html>

Figura 23..1: Ejemplo remoto de JSON

En nuestro ejemplo, los datos de 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 Utilizando los datos JSON para crear una presentación.

23.4 Proporcionar 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 de JSON se generan de forma remota mediante un servicio web y las plantillas también se almacenan de forma remota, solo es necesaria 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.