Automazione con dati JSON
- Home
- Risorse
- Manuale dell’utente
- think-cell Chart: Visualizzazione dei dati
- Automazione avanzata dei report
- Automazione con dati JSON
Crea automaticamente presentazioni think-cell con JavaScript Object Notation (JSON). L'automazione di think-cell JSON consente di eseguire le seguenti operazioni:
- Compilare i modelli di PowerPoint con i dati (ad esempio, titoli delle diapositive e grafici)
- Riutilizzare e riordinare i modelli per creare nuove presentazioni
- Utilizzare i dati JSON e i modelli di PowerPoint da fonti locali o remote
- Trasformare i dati in tempo reale in nuove presentazioni con un servizio web
Struttura dei file JSON
Questa sezione spiega come strutturare il file JSON. I frammenti di un file di esempio, sample.ppttc, accompagnano questa spiegazione. Vedere l'esempio completo alla fine di questa sezione (Completare l’esempio JSON).
Nella cartella di installazione di think-cell, la ppttc cartella contiene i seguenti file:
- Lo schema JSON
ppttc-schema.json - Il modello di PowerPoint
template.pptx - Il file di dati JSON
sample.ppttc
Il file ppttc-schema.json descrive le regole che un file .ppttc deve seguire per creare una presentazione PowerPoint con think-cell.
Il file template.pptx contiene elementi denominati (vedere Automazione avanzata dei report). Un modello può contenere un numero qualsiasi di diapositive.
Il file sample.ppttc specifica:
- I modelli che think-cell utilizzerà per creare una nuova presentazione
- L'ordine in cui appariranno i modelli
- I dati JSON che riempiono i modelli
Specificare i modelli, gli elementi e i relativi dati
L'esempio sample.ppttc mostra una matrice che rappresenta una presentazione PowerPoint (vedere Completare l’esempio JSON).
Modelli
La matrice contiene una serie di oggetti, ognuno dei quali rappresenta una copia di un modello PowerPoint. Nella nuova presentazione, i modelli vengono visualizzati nell'ordine specificato nella matrice. Se un modello contiene più diapositive, è possibile modificarne l'ordine solo modificando il modello in PowerPoint.
Nella matrice, ogni oggetto modello deve avere due proprietà: template e data.
template
La proprietà template è una stringa che specifica il modello di PowerPoint che si desidera utilizzare. La stringa può essere una delle seguenti:
- Se il modello è stato memorizzato a livello locale, specificare il percorso relativo o assoluto del modello nel file system locale. Il separatore di directory deve essere una barra rovesciata (\) in Windows, il carattere escape di una doppia barra rovesciata (\\) in JSON, o una barra (/) su macOS.
- Se il modello è stato memorizzato in remoto, specificare l'URL in cui è memorizzato il modello (vedere Fornire modelli in remoto).
Nel caso più semplice, come mostrato in Completare l’esempio JSON, la riga template è solo il nome del file del modello di PowerPoint, dato che il modello si trova nella stessa cartella del file .ppttc.
"template": "template.pptx",
data
La proprietà data è una matrice di oggetti che specificano quanto segue:
- Grafici e altri elementi con un nome AddRangeData (vedere Automazione avanzata dei report)
- I dati che riempiono questi elementi
Gli oggetti possono essere visualizzati in qualsiasi ordine nella matrice data, indipendentemente dalla posizione degli elementi corrispondenti nel modello di PowerPoint.
"data": [ ... ]
Elementi
Ogni oggetto nella matrice data ha due proprietà:
namespecifica il nome di un elemento, assegnato in AddRangeData Name (vedere Automazione avanzata dei report).tablespecifica i dati che riempiono l'elemento.
Se due elementi hanno lo stesso nome, think-cell li riempie con gli stessi dati.
Il valore table è una matrice. La struttura della matrice dipende dal tipo di elemento:
- Per un campo di testo di automazione, una Harvey Ball o una casella di controllo, la matrice
tablecontiene una singola sottomatrice con un singolo oggetto. L'oggetto, ad esempio una stringa di testo o un numero, riempie il campo di testo. - Per un grafico o una tabella, la matrice
tablecontiene sottomatrici che rappresentano il foglio dati dell'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}]
]
},
Struttura del foglio dati del grafico
Per un grafico, ogni sottomatrice nella matrice table rappresenta una riga del foglio dati di un grafico. Per informazioni sul layout specifico del foglio dati di un grafico, fare riferimento al relativo capitolo nel manuale dell'utente o aprire il foglio dati del grafico per riferimento (vedere Inserire dati del grafico). Di seguito viene descritta la struttura delle righe di un grafico predefinito, come specificato nello schema JSON.
Prima riga
La prima riga è una sottomatrice che contiene etichette di categoria. Una prima cella vuota (null) precede le etichette di categoria. I dati nella prima cella non vengono visualizzati nel grafico, quindi possono effettivamente contenere qualsiasi dato.
[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"}],
Righe successive
Le righe successive sono sottomatrici contenenti le etichette delle serie e i punti dati del grafico. L'ordine degli elementi in una sottomatrice corrisponde all'ordine delle celle in una riga del foglio dati. La prima cella della riga contiene l'etichetta della serie, che di solito è una stringa. Le celle successive nella riga devono contenere numeri o, per i diagrammi di Gantt, date.
[{"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}]
Righe vuote
Per specificare una riga vuota, utilizzare una matrice vuota ([]).
Nel frammento precedente, la matrice vuota cambia il modo in cui think-cell applica la combinazione colori PowerPoint Theme alla serie del grafico (vedere Schema di riempimento del grafico). La combinazione colori assegna il verde scuro alla serie nella riga 3. Se si lascia vuota la riga 3, le serie Competitor 1 e Our brand si trovano ora nelle righe 4 e 5, a cui la combinazione colori assegna rispettivamente l'azzurro e e il blu scuro.
Righe e colonne opzionali
Nei fogli dati dei grafici del modello di PowerPoint, è possibile aggiungere o rimuovere righe e colonne opzionali (vedere Modifica layout foglio dati). Ciò influisce sul modo in cui think-cell interpreta i dati JSON nelle righe e colonne corrispondenti.
Ad esempio, se si aggiunge la riga 100%= in un foglio dati grafico, think-cell interpreta la seconda riga di dati JSON come i totali da cui vengono calcolate le percentuali. Se si omette la riga 100%=, come in questo esempio, think-cell interpreta i dati JSON nella seconda riga come punti dati ordinari.
La tabella seguente riassume le righe e le colonne facoltative comuni, le loro posizioni nei fogli dati e le loro impostazioni predefinite. Per controllare il layout dei dati di un grafico specifico, fare doppio clic sul grafico per aprirne il foglio dati.
|
Option |
Contents |
Datasheet position |
Default setting |
|---|---|---|---|
|
Series |
Etichette serie |
Colonna 1 |
Selezionato |
|
Category |
Etichette categoria |
Riga 1 |
Selezionato |
|
100%= |
Totali per i calcoli percentuali |
Riga 2 (se Category selezionata) Riga 1 (se Category non selezionata) |
Non selezionato |
Campi di testo di automazione, Harvey Ball e caselle di controllo
Quando si compilano campi di testo di automazione, singole Harvey Ball e singole caselle di controllo con dati JSON, think-cell si aspetta una matrice table con una cella. All'interno della matrice table, la cella è rappresentata come una singola sottomatrice che contiene un singolo oggetto.
{
"name": "SlideTitle",
"table": [[{"string": "Competition: Germany"}]]
},
Se una Harvey Ball o una casella di controllo fanno parte di una tabella, è sufficiente specificare il contenuto dell'elemento nella cella della tabella corrispondente.
Tipi di dati cella
In un file .ppttc, le celle possono contenere i seguenti tipi di dati.
|
Data type |
Key |
Example |
Notes |
|---|---|---|---|
|
Testo |
|
|
Sono supportati tutti i caratteri Unicode (UTF-8) stampabili. |
|
Numero |
|
|
Il separatore decimale deve essere un punto (.). |
|
Data del calendario |
|
|
Formato richiesto: |
|
Percentuale |
|
|
Il separatore decimale deve essere un punto (.). Non includere il segno percentuale (%). |
|
Colore riempimento cella del foglio dati |
|
Esadecimale: RGB: |
Aggiungere Per applicare i colori di riempimento del foglio dati alle funzioni del grafico, selezionare, nel modello di PowerPoint, Use Datasheet Fill (vedere Schema di riempimento del grafico). |
|
Cella vuota |
Non applicabile |
|
Non racchiudere |
Completare l’esempio JSON
Vedere l'esempio JSON completo dal sample.ppttc qui di seguito:
[
{
"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}]
]
}
]
}
]
Creare presentazioni con i dati JSON
Quando installato, think-cell indica al sistema operativo di aprire i file .ppttc con think-cell. Per aprire i file JSON con think-cell in Esplora file (Windows) o Finder (macOS), ad esempio facendo doppio clic, utilizzare l'estensione .ppttc.
Quando viene aperto un file JSON, think-cell esegue le seguenti operazioni:
- think-cell legge il file e lo verifica per rilevare eventuali errori.
- think-cell crea una nuova presentazione. La presentazione è composta da copie dei modelli di diapositiva specificati nella matrice di livello superiore nel file JSON.
- Nelle copie del modello, think-cell riempie gli elementi (identificati da
name) con i dati corrispondenti (specificati intable). Gli elementi si aggiornano di conseguenza. - La nuova presentazione si apre in PowerPoint. È possibile salvare o modificare ulteriormente la presentazione.
Creare presentazioni dalla riga di comando
Creare una presentazione dai dati JSON dalla riga di comando immettendo quanto segue:
PPTTC_PATH PPTTC_INPUT -o PPTX_OUTPUT
Sostituire quanto segue:
PPTTC_PATH: il percorso dippttc.exePPTTC_INPUT: il percorso del file .ppttcPPTX_OUTPUT: il nome del file .pptx creato, preceduto dal percorso in cui si desidera salvarlo
Il file eseguibile ppttc.exe si trova in ppttc nella cartella di installazione di think-cell. Chiamare ppttc.exe negli script di automazione per creare nuove presentazioni PowerPoint.
Fornire i dati JSON in remoto
Generare dati JSON in remoto per un file .ppttc su un server. Per creare una nuova presentazione, l'utente scarica il file .ppttc da un browser Web e lo apre con think-cell.
Per un esempio di come generare e scaricare dati JSON con un server, nella cartella di installazione di think-cell, vedere /ppttc/sample.html. Il file sample.html contiene gli elementi seguenti:
- Un markup HTML per un pulsante che, quando cliccato, compila al volo i dati JSON
- Alcuni dati JSON statici. In un caso d'uso tipico, i dati JSON provengono da altre fonti.
- Una funzione JavaScript che scarica il file .ppttc sul computer dell'utente
Dopo che l'utente l'ha scaricato, può salvare e aprire il file .pptc. Quando l'utente apre il file, think-cell crea una nuova presentazione utilizzando i dati JSON (vedere Creare presentazioni con i dati JSON).
Fornire modelli in remoto
Per fornire modelli PowerPoint tramite un server, effettuare le operazioni seguenti:
- Nel file JSON, fornire un URL anziché un percorso locale per la chiave
template. Il protocollo URL può essere HTTP o HTTPS. - Assicurarsi che l'utente che apre il file .ppttc abbia accesso al modello remoto.
È sufficiente un'installazione think-cell standard sul computer dell'utente per generare presentazioni think-cell con dati e modelli JSON remoti.
Creare presentazioni in remoto
Imposta flussi di lavoro automatizzati in cui gli utenti scaricano presentazioni think-cell con dati personalizzati. Per scaricare le presentazioni, gli utenti hanno bisogno solo di un browser web. Non è necessario che think-cell sia installato sul computer.
Per configurare questi flussi di lavoro è necessario il server think-cell, che funziona solo su Windows. Il server think-cell prende i dati JSON come input e fornisce presentazioni PowerPoint come output.
Eseguire il server think-cell
Per avviare il server think-cell, attenersi alla seguente procedura:
- Nella cartella di installazione di think-cell, eseguire
tcserver.exe. - Immettere un URL che specifichi l'indirizzo IP e la porta che il server deve ascoltare. Il protocollo del server è HTTP o HTTPS.
- Seleziona Register URL.
- Quando richiesto, consentire al server think-cell di apportare modifiche al dispositivo.
Per arrestare il server think-cell, attenersi alla seguente procedura:
- Selezionare Unregister URL.
- Quando richiesto, consentire al server think-cell di apportare modifiche al dispositivo.
Il campo Log visualizza quanto segue:
- Confermare che il server ha iniziato o smesso di essere in ascolto su un URL
- Tutte le richieste del client e le risposte del server
Il server accetta i dati JSON come richieste HTTP POST con tipo di media (ovvero tipo di MIME) application/vnd.think-cell.ppttc+json e risponde con un file PowerPoint.
Eseguire come servizio di avvio automatico
Per avviare automaticamente il server think-cell quando si accende il computer, attenersi alla seguente procedura:
- Nella finestra di dialogo think-cell server, selezionare l’opzione Run as auto-start service.
- In Password, immettere la password per l'account denominato nell'opzione Run as auto-start service.
Provalo!
Creare una presentazione PowerPoint cliccando su un pulsante utilizzando il nostro esempio già pronto.
- Avviare il server think-cell con l'URL
http://127.0.0.1:8080. - Aprire
http://127.0.0.1:8080in un browser. - Si aprirà la pagina web "ppttc test". Selezionare Send .ppttc to server and get .pptx.
Il server think-cell crea una presentazione PowerPoint dai dati JSON. Il browser scarica la presentazione sul computer.
Il codice sorgente HTML della pagina "ppttc test" mostra un possibile utilizzo dell'automazione JSON di think-cell. Il codice sorgente può fungere da punto di partenza per il flusso di lavoro automatizzato. Il codice contiene gli elementi seguenti:
- Un markup HTML per un pulsante che, quando cliccato, richiama un metodo che fa uso di
XMLHttpRequestper comunicare con il server think-cell. - Alcuni dati JSON statici. In un caso d'uso tipico, i dati JSON provengono da altre fonti.
- Una funzione JavaScript per inviare i dati JSON al server think-cell. Il server genera la richiesta HTTP POST con i dati JSON statici. La risposta del server è un download di file.
La pagina "ppttc test" utilizza JavaScript per inviare richieste HTTP POST e per salvare la risposta del server think-cell come file PowerPoint. Ovviamente, funzionano anche altre lingue.