Automazione con dati JSON
- Home
- Risorse
- Manuale dell’utente
- thinkcell Charts: visualizzazione dei dati
- Automazione avanzata dei report
- Automazione con dati JSON
L'automazione con dati JSON è disponibile con thinkcell Suite.
Creare automaticamente presentazioni thinkcell con JavaScript Object Notation (JSON). Con l'automazione JSON di thinkcell, è possibile eseguire le operazioni seguenti:
- Compilare modelli PowerPoint con dati (ad esempio titoli delle diapositive e grafici)
- Riutilizzare e riordinare i modelli per creare nuove presentazioni
- Usare dati JSON e modelli PowerPoint da origini locali o remote
- Trasformare dati in tempo reale in nuove presentazioni con un servizio Web
Struttura dei file JSON
Questa sezione spiega come strutturare il file JSON. Frammenti di un file di esempio, sample.ppttc, accompagnano questa spiegazione. Vedere l'esempio completo alla fine di questa sezione (Esempio JSON completo).
Schema JSON e file di esempio
Nella cartella di installazione di thinkcell, la cartella ppttc contiene i file seguenti:
- Lo schema JSON
ppttc-schema.json - Il modello 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 thinkcell.
Il file template.pptx contiene elementi denominati (vedere Automazione avanzata dei report). Un modello può avere un numero qualsiasi di diapositive.
Il file sample.ppttc specifica:
- I modelli che thinkcell userà per creare una nuova presentazione
- L'ordine in cui appariranno i modelli
- I dati JSON che compilano i modelli
Specificare modelli, elementi e i relativi dati
L'esempio sample.ppttc mostra un array che rappresenta una presentazione PowerPoint (vedere Esempio JSON completo).
Modelli
L'array contiene una serie di oggetti, ciascuno dei quali rappresenta una copia di un modello di PowerPoint. Nella nuova presentazione, i modelli vengono visualizzati nell'ordine specificato nell'array. Se un modello contiene più diapositive, è possibile modificare l'ordine delle diapositive solo modificando il modello in PowerPoint.
Nell'array, ogni oggetto modello deve avere due proprietà: template e data.
template
La proprietà template è una stringa che specifica il modello di PowerPoint da utilizzare. La stringa può essere una delle seguenti:
- Se il modello è stato archiviato localmente, specificare il percorso relativo o assoluto del modello nel file system locale. Il separatore di directory deve essere una barra rovesciata (\) in Windows, con escape come doppia barra rovesciata (\\) in JSON, oppure una barra (/) in macOS.
- Se il modello è stato archiviato in remoto, specificare l'URL in cui è archiviato il modello (vedere Fornire modelli in remoto).
Nel caso più semplice, come illustrato in Esempio JSON completo, la stringa template è semplicemente il nome file del modello di PowerPoint, dato che il modello si trova nella stessa cartella del file .ppttc.
"template": "template.pptx",
data
La proprietà data è un array 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 comparire in qualsiasi ordine nell'array data, indipendentemente dalla posizione dei rispettivi elementi nel modello di PowerPoint.
"data": [ ... ]
Elementi
Ogni oggetto nell'array 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, thinkcell li riempie con gli stessi dati.
Il valore table è un array. La struttura dell'array dipende dal tipo di elemento:
- Per un campo di testo di automazione, un Harvey ball o una casella di controllo, l'array
tablecontiene un singolo sottoarray 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, l'array
tablecontiene sottoarray 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 sottoarray nell'array table rappresenta una riga del foglio dati di un grafico. Per il layout specifico del foglio dati di un grafico, fare riferimento al relativo capitolo nel manuale dell'utente oppure aprire il foglio dati del grafico come riferimento (vedere Immettere i 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 è un sottoarray contenente le 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 in realtà 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 sottoarray contenenti le etichette delle serie e i punti dati del grafico. L'ordine degli elementi in un sottoarray corrisponde all'ordine delle celle in una riga del foglio dati. La prima cella della riga contiene l'etichetta della serie, che in genere è una stringa. Le celle successive della riga devono contenere numeri oppure, 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 un array vuoto ([]).
Nel frammento precedente, l'array vuoto modifica il modo in cui thinkcell applica la combinazione colori PowerPoint Theme alle serie del grafico (vedere Schema di riempimento del grafico). La combinazione colori assegna il verde scuro alla serie nella riga 3. Lasciando 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 il blu scuro.
Righe e colonne facoltative
Nei fogli dati dei grafici del modello di PowerPoint, è possibile aggiungere o rimuovere righe e colonne facoltative (vedere Modificare il layout del foglio dati). Questa operazione influisce sul modo in cui thinkcell interpreta i dati JSON nelle righe e colonne corrispondenti.
Ad esempio, se si aggiunge la riga 100%= in un foglio dati del grafico, thinkcell 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, thinkcell interpreta i dati JSON nella seconda riga come normali punti dati.
La tabella seguente riepiloga le righe e colonne facoltative comuni, le rispettive posizioni nel foglio dati e l'impostazione predefinita. Per controllare il layout dati di un grafico specifico, fare doppio clic sul grafico per aprirne il foglio dati.
|
Opzione |
Contenuto |
Posizione nel foglio dati |
Impostazione predefinita |
|---|---|---|---|
|
Series |
Etichette delle serie |
Colonna 1 |
Selezionato |
|
Category |
Etichette di categoria |
Riga 1 |
Selezionato |
|
100%= |
Totali per i calcoli percentuali |
Riga 2 (se Category è selezionato) |
Non selezionato |
Campi di testo di automazione, Harvey ball e caselle di controllo
Quando si riempiono campi di testo di automazione, singoli Harvey ball e singole caselle di controllo con dati JSON, thinkcell prevede un array table con una cella. All'interno dell'array table, la cella è rappresentata come un singolo sottoarray contenente un singolo oggetto.
{
"name": "SlideTitle",
"table": [[{"string": "Competition: Germany"}]]
},
Se un Harvey ball o una casella di controllo fa parte di una tabella, specificare semplicemente il contenuto dell'elemento nella cella della tabella corrispondente.
Tipi di dati delle celle
In un file .ppttc, le celle possono contenere i seguenti tipi di dati.
|
Tipo di dati |
Chiave |
Esempio |
Note |
|---|---|---|---|
|
Testo |
|
|
Sono supportati tutti i caratteri Unicode stampabili (UTF-8). |
|
Numero |
|
|
Il separatore decimale deve essere un punto (.). |
|
Data di calendario |
|
|
Formato richiesto: |
|
Percentuale |
|
|
Il separatore decimale deve essere un punto (.). Non includere il segno di percentuale (%). |
|
Colore di riempimento della cella del foglio dati |
|
Esadecimale: RGB: |
Aggiungere Per applicare i colori di riempimento del foglio dati alle funzionalità del grafico, nel modello di PowerPoint selezionare Use Datasheet Fill (vedere Schema di riempimento del grafico). |
|
Cella vuota |
Non applicabile |
|
Non racchiudere |
Esempio JSON completo
Vedere di seguito l'esempio JSON completo da sample.ppttc:
[
{
"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 dati JSON
Quando thinkcell è installato, indica al sistema operativo di aprire i file .ppttc con thinkcell. Per aprire i file JSON con thinkcell in Esplora file (Windows) o Finder (macOS), ad esempio facendo doppio clic, utilizzare l'estensione .ppttc.
Quando viene aperto un file JSON, thinkcell esegue le operazioni seguenti:
- thinkcell legge il file e ne verifica la presenza di errori.
- thinkcell crea una nuova presentazione. La presentazione è costituita da copie dei modelli di diapositiva specificati nell'array di primo livello nel file JSON.
- Nelle copie dei modelli, thinkcell 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 da dati JSON dalla riga di comando immettendo quanto segue:
<var>PPTTC_PATH</var> <var>PPTTC_INPUT</var> -o <var>PPTX_OUTPUT</var>
Sostituire quanto segue:
PPTTC_PATH: il percorso dippttc.exePPTTC_INPUT: il percorso del file .ppttcPPTX_OUTPUT: il nome del file .pptx che si crea, preceduto dal percorso in cui salvarlo
Il file eseguibile ppttc.exe si trova in ppttc nella cartella di installazione di thinkcell. Chiamare ppttc.exe negli script di automazione per creare nuove presentazioni PowerPoint.
Fornire dati JSON in remoto
Generare in remoto dati JSON 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 thinkcell.
Per un esempio di come generare e scaricare dati JSON con un server, nella cartella di installazione di thinkcell, vedere /ppttc/sample.html. Il file sample.html contiene gli elementi seguenti:
- Markup HTML per un pulsante che, quando viene cliccato, compila dati JSON al volo
- Alcuni dati JSON statici. In un caso d'uso tipico, i dati JSON provengono da altre origini.
- Una funzione JavaScript che scarica il file .ppttc nel computer dell'utente
Dopo aver scaricato il file .ppttc, l'utente può salvarlo o aprirlo. Quando l'utente apre il file, thinkcell crea una nuova presentazione utilizzando i dati JSON (vedere Creare presentazioni con dati JSON).
Fornire modelli in remoto
Per fornire modelli PowerPoint tramite un server, procedere come segue:
- Nel file JSON, fornire un URL invece di un percorso locale per la chiave
template. Il protocollo dell'URL può essere HTTP o HTTPS. - Assicurarsi che l'utente che apre il file .ppttc abbia accesso al modello remoto.
Un'installazione standard di thinkcell nel computer dell'utente è sufficiente per generare presentazioni thinkcell con dati JSON e modelli remoti.
Creare presentazioni in remoto
Configurare flussi di lavoro automatizzati in cui gli utenti scaricano presentazioni thinkcell con dati personalizzati. Per scaricare le presentazioni, agli utenti basta un browser Web. Non è necessario che thinkcell sia installato nel loro computer.
La configurazione di questi flussi di lavoro richiede il server thinkcell, che funziona solo su Windows. Il server thinkcell accetta dati JSON come input e fornisce presentazioni PowerPoint come output.
Eseguire il server thinkcell
Per avviare il server thinkcell, seguire questi passaggi:
- Nella cartella di installazione di thinkcell, eseguire
tcserver.exe. - Immettere un URL che specifichi l'indirizzo IP e la porta su cui il server deve restare in ascolto. Il protocollo del server è HTTP o HTTPS.
- Selezionare Register URL.
- Quando richiesto, consentire al server thinkcell di apportare modifiche al dispositivo.
Per arrestare il server thinkcell, seguire questi passaggi:
- Selezionare Unregister URL.
- Quando richiesto, consentire al server thinkcell di apportare modifiche al dispositivo.
Il campo Log visualizza quanto segue:
- Conferma che il server ha iniziato o smesso di restare in ascolto su un URL
- Tutte le richieste client e le risposte del server
Il server accetta dati JSON come richieste HTTP POST con tipo di supporto (noto anche come tipo MIME) application/vnd.think-cell.ppttc+json e risponde con un file PowerPoint.
Eseguire come servizio ad avvio automatico
Per avviare automaticamente il server thinkcell quando si accende il computer, seguire questi passaggi:
- Nella finestra di dialogo thinkcell server, selezionare l'opzione Run as auto-start service.
- In Password, immettere la password per l'account indicato nell'opzione Run as auto-start service.
Provalo!
Creare una presentazione PowerPoint con il clic di un pulsante usando il nostro esempio pronto all'uso.
- Avviare il server thinkcell 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 thinkcell crea una presentazione PowerPoint da dati JSON. Il browser scarica la presentazione nel computer.
Il codice sorgente HTML della pagina "ppttc test" mostra un possibile uso dell'automazione JSON di thinkcell. Il codice sorgente può servire come punto di partenza per il proprio flusso di lavoro automatizzato. Il codice contiene gli elementi seguenti:
- Markup HTML per un pulsante che, quando viene cliccato, richiama un metodo usando
XMLHttpRequestper comunicare con il server thinkcell. - Alcuni dati JSON statici. In un caso d'uso tipico, i dati JSON provengono da altre origini.
- Una funzione JavaScript per inviare i dati JSON al server thinkcell. Il server genera la richiesta HTTP POST con i dati JSON statici. La risposta del server è un download di file.
La pagina "ppttc test" usa JavaScript per inviare richieste HTTP POST e salvare la risposta del server thinkcell come file PowerPoint. Ovviamente, funzionano anche altri linguaggi.
Hai bisogno di risolvere un problema?
Consulta la nostra knowledge base