23. Automazione con dati JSON

È possibile utilizzare i dati in JSON per duplicare i grafici creati inizialmente come modello e fornire loro un nuovo foglio dati. È possibile controllare l’ordine in cui vengono utilizzati modelli specifici per costruire una nuova presentazione. È anche possibile utilizzare più volte i modelli.

È possibile preparare una libreria di tutti i tipi di grafici necessari e, se richiesto, versioni con diversi elementi decorativi dei grafici abilitati. È quindi possibile combinare liberamente questi modelli e fornirli di dati da utilizzare in una nuova presentazione.

Sia i modelli di PowerPoint e i dati JSON possono essere archiviati a livello locale o in remoto. I dati JSON possono inoltre essere generati al volo da un servizio Web.

23.1
Struttura dei dati JSON per think-cell
23.2
Utilizzo dei dati JSON per creare una presentazione
23.3
Fornire i dati JSON in remoto
23.4
Fornire il modello in remoto

23.1 Struttura dei dati JSON per think-cell

Un esempio di dati JSON per think-cell è mostrato sotto e può essere trovato nel file sample.ppttc nella sottocartella ppttc della directory di installazione di think-cell. JSON specifica una presentazione da creare da una concatenazione di modelli. È conforme allo schema ppttc/ppttc-schema.json.

esempio di file JSON per l’automazione think-cell

Al livello principale c’è una matrice di elementi. Ogni elemento specifica un file modello e dati per i suoi grafici. È possibile concatenare diversi modelli e un singolo modello può essere utilizzato più volte. Nel caso più semplice, un solo modello viene utilizzato una sola volta per riempire tutti i grafici contenuti nel modello con i dati.

Ogni elemento della matrice di modelli concatenati contiene due chiavi: image modello e image dati. Il valore per image modello è il percorso di un file PowerPoint con think-cell chart per il quale è stato impostato un nome come identificatore (vedere Introduzione all’automazione). Il file modello può anche essere recuperato da una posizione remota come descritto in Fornire il modello in remoto.

Il valore per la chiave image dati è un elenco di tabelle di dati in formato JSON per i grafici contenuti nel modello. Ogni elemento nell’elenco ha due proprietà: image nome e image tabella. Il image nome specifica un grafico usando il suo nome e la image tabella contiene la tabella dei dati.

La struttura del valore per image tabella corrisponde direttamente a un foglio dati non trasposto con righe che rappresentano le serie e colonne che rappresentano le categorie. Per un grafico predefinito significa che verrà rappresentato il seguente ordine di righe:

1.
Una riga con prima una cella vuota (null) e poi celle con i nomi delle categorie.
2.
Una riga di 100%= valori. Se non viene utilizzato 100%= valori, la riga vuota viene specificata come image [].
3.
Multiple righe con una prima cella che fornisce il nome della serie e le celle successive contengono valori numerici.

In JSON si può fare riferimento a qualsiasi grafico a cui può essere assegnato un nome. Per il layout specifico del foglio dati, vedere il rispettivo capitolo o semplicemente aprire il foglio dati interno del grafico per farvi riferimento.

Nota: Una cella nell’intervallo del foglio dati think-cell può contenere qualsiasi tipo di testo. Se lo si desidera, è anche possibile riempire la prima cella nella prima riga.

I dati che compongono il valore per una chiave table devono essere conformi a determinate regole impostate nello schema. Il valore per la chiave table è di per sé una matrice. Le sottomatrici rappresentano le righe del foglio dati. Le righe vuote possono essere specificate utilizzando una matrice vuota []. Il contenuto di una cella è descritto dagli elementi elencati in tale sottomatrice. L’ordine degli elementi corrisponde all’ordine delle colonne in un foglio dati. Una cella vuota deve essere descritta esplicitamente utilizzando l’elemento null. Le celle con un contenuto devono essere descritte utilizzando un’altra coppia chiave-valore. In questo caso, la chiave descrive il tipo di dati e il valore contiene i dati effettivi da mostrare nella presentazione. Sono supportati tre diversi tipi di dati:

  • image stringa per qualsiasi tipo di testo. Sono supportati tutti i caratteri Unicode (UTF-8) stampabili. Esempio: {"string":"Echo"}
  • image numero per qualsiasi tipo di numero. Il separatore decimale utilizzato deve essere un punto. Esempio: {"number":"5"}
  • image data per le date. Il formato obbligatorio è YYYY-MM-DD. Esempio: {"date":"2016-09-04"}

La formattazione del contenuto delle celle (ad esempio, specificare il formato della data) deve essere eseguita nel modello di PowerPoint.

23.2 Utilizzo dei dati JSON per creare una presentazione

Il file di dati JSON deve essere un tipo di file .ppttc. Quando si apre un file di questo tipo:

1.
think-cell legge il file e ne verifica l’integrità strutturale.
2.
Viene creata una nuova presentazione. Per ogni elemento al livello più alto del file JSON, la nuova presentazione contiene una copia del modello specificato.
3.
Nelle copie del modello, i fogli dati dei grafici identificati dai valori name vengono sostituiti con i dati nei valori table. Tutte le etichette totali, i posizionamenti delle etichette e i valori della freccia di differenza o altri elementi decorativi dei grafici vengono aggiornati.

Successivamente, viene visualizzata la nuova presentazione. L’utente può modificare ulteriormente i contenuti e salvarli o utilizzarli in qualsiasi altro modo.

23.3 Fornire i dati JSON in remoto

I dati JSON in un file .ppttc possono anche essere generati in remoto da un servizio Web e offerti all’utente per il download in un browser Web. Consultare l’esempio fornito sotto e in sample.html nella sottocartella ppttc della directory di installazione di 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: Esempio JSON in remoto

Nel nostro esempio, i dati JSON vengono compilati al volo quando l’utente richiede un download. Sebbene l’esempio incorpori dati statici, è possibile creare dinamicamente JSON da altre fonti di dati utilizzando i parametri forniti dall’utente sul proprio sito Web.

Quando viene scaricato un file .ppttc, l’utente può scegliere di salvare il file o aprirlo in modo simile ad altri download. Quando si apre il file, i dati JSON vengono utilizzati per creare una nuova presentazione come descritto in Utilizzo dei dati JSON per creare una presentazione.

23.4 Fornire il modello in remoto

I file di modello con think-cell chart possono anche essere forniti tramite un server remoto. In questo caso, il valore per la chiave template è un URL anziché un percorso locale, come mostrato nell’esempio JSON remoto di cui sopra. L’URL può specificare http come protocollo, https per una connessione sicura o qualsiasi altro protocollo valido sul sistema in cui viene aperto il file .ppttc.

Durante l’elaborazione di un file .ppttc che fa riferimento a un modello remoto, PowerPoint recupera il file del modello. Pertanto, l’utente che ha aperto il file .ppttc necessita di un accesso appropriato al modello remoto.

Quando i dati JSON vengono generati in remoto da un servizio Web e i modelli vengono archiviati anche in remoto, per utilizzare presentazioni PowerPoint generate dinamicamente con think-cell chart è necessaria solo un’installazione di think-cell standard sul computer dell’utente.