Automatisierung mit JSON-Daten

Erstellen Sie automatisch think-cell Präsentationen mit JavaScript Object Notation (JSON). Mit der think-cell JSON-Automatisierung können Sie Folgendes tun:

  • PowerPoint-Vorlagen mit Daten füllen (z. B. Folientitel und Diagramme)
  • Vorlagen wiederverwenden und neu anordnen, um neue Präsentationen zu erstellen
  • JSON-Daten und PowerPoint-Vorlagen aus lokalen oder Remote-Quellen verwenden
  • Echtzeitdaten mit einem Webdienst in neue Präsentationen umwandeln

JSON-Dateistruktur

In diesem Abschnitt wird erklärt, wie Sie die JSON-Datei strukturieren. Diese Erklärung wird durch Ausschnitte aus einer Beispieldatei, sample.ppttc, ergänzt. Siehe das vollständige Beispiel am Ende dieses Abschnitts (Vollständiges JSON-Beispiel).

Im think-cell Installationsordner enthält der Ordner ppttc die folgenden Dateien:

  • Das JSON-Schema ppttc-schema.json
  • Die PowerPoint-Vorlage template.pptx
  • Die JSON-Datendatei sample.ppttc

Die Datei ppttc-schema.json beschreibt die Regeln, denen eine .ppttc-Datei entsprechen muss, um mit think-cell eine PowerPoint-Präsentation zu erstellen.

Die Datei template.pptx enthält benannte Elemente (siehe Fortschrittliche Berichtsautomatisierung). Eine Vorlage kann eine beliebige Anzahl an Folien enthalten.

Die Datei sample.ppttc gibt Folgendes an:

  • Die Vorlagen, die think-cell zum Erstellen einer neuen Präsentation verwendet
  • Die Reihenfolge, in der die Vorlagen angezeigt werden
  • Die JSON-Daten, die die Vorlagen ausfüllen

Festlegen von Vorlagen, Elementen und deren Daten

Das Beispiel sample.ppttc zeigt ein Array, das eine PowerPoint-Präsentation darstellt (siehe Vollständiges JSON-Beispiel).

Vorlagen

Das Array enthält eine Serie von Objekten, von denen jedes eine Kopie einer PowerPoint-Vorlage darstellt. In der neuen Präsentation werden die Vorlagen in der Reihenfolge angezeigt, die Sie im Array angegeben haben. Wenn eine Vorlage mehrere Folien enthält, können Sie die Reihenfolge der Folien nur ändern, indem Sie die Vorlage in PowerPoint bearbeiten.

In dem Array muss jedes Vorlagenobjekt zwei Eigenschaften haben: template und data.

template

Die Eigenschaft template ist eine Zeichenfolge, die die PowerPoint-Vorlage angibt, die Sie verwenden möchten. Die Zeichenfolge kann eine der folgenden sein:

  • Wenn Sie die Vorlage lokal gespeichert haben, geben Sie den relativen oder absoluten Pfad der Vorlage im lokalen Dateisystem an. Das Verzeichnis-Trennzeichen muss unter Windows ein Backslash (\) – in JSON als doppelter Backslash (\\) – oder unter macOS ein Schrägstrich (/) sein.

Im einfachsten Fall, wie in Vollständiges JSON-Beispiel gezeigt, ist die template-Zeichenfolge lediglich der Dateiname der PowerPoint-Vorlage, vorausgesetzt, dass sich die Vorlage im selben Ordner wie die .ppttc-Datei befindet.

"template": "template.pptx",
data

Die Eigenschaft data ist ein Array von Objekten, die Folgendes angeben:

Die Objekte können in beliebiger Reihenfolge im data-Array erscheinen, unabhängig von der Position ihrer entsprechenden Elemente in der PowerPoint-Vorlage.

"data": [ ... ]

Elemente

Jedes Objekt im data-Array hat zwei Eigenschaften:

Wenn zwei Elemente denselben Namen haben, füllt think-cell sie mit denselben Daten.

Der table-Wert ist ein Array. Die Struktur des Arrays hängt vom Elementtyp ab:

  • Bei einem automatisierten Textfeld, einem Harvey Ball oder einem Kontrollkästchen enthält das table-Array ein einzelnes Sub-Array mit einem einzelnen Objekt. Das Objekt – wie eine Textzeichenfolge oder eine Nummer – füllt das Textfeld.
  • Für ein Diagramm oder eine Tabelle enthält das table-Array Sub-Arrays, die das Datenblatt des Elements darstellen.
{
	"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}]
	]
},

Struktur des Diagramm-Datenblatts

Bei einem Diagramm entspricht jedes Sub-Array im table-Array einer Zeile eines Diagramm-Datenblatts. Informationen zum spezifischen Layout des Datenblatts eines Diagramms finden Sie im entsprechenden Kapitel des Benutzerhandbuchs. Alternativ können Sie das Datenblatt des Diagramms als Referenz öffnen (siehe Diagrammdaten eingeben). Im Folgenden wird die Struktur einer Standard-Diagrammzeile beschrieben, wie im JSON-Schema angegeben.

Erste Zeile

Die erste Zeile ist ein Sub-Array, das Kategoriebeschriftungen enthält. Eine leere erste Zelle (null) steht vor den Kategoriebeschriftungen. Die Daten in der ersten Zelle werden nicht im Diagramm angezeigt, können also beliebige Daten enthalten.

[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"}],

Nachfolgende Zeilen

Die folgenden Zeilen sind Sub-Arrays, die die Serienbezeichnungen und die Datenpunkte der Diagramme enthalten. Die Reihenfolge der Elemente ein einem Sub-Array entspricht der Reihenfolge der Zellen in einer Datenblattzeile. Die erste Zelle in der Zeile enthält die Serienbezeichnung, bei der es sich in der Regel um eine Zeichenfolge handelt. Die nachfolgenden Zellen in der Zeile sollten Zahlen oder, bei Gantt-Diagrammen, Datumsangaben enthalten.

[{"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}]

Leere Zeilen

Um eine leere Zeile anzugeben, verwenden Sie ein leeres Array ([]).

Im vorherigen Ausschnitt bewirkt das leere Array eine Änderung, wie think-cell das PowerPoint Theme Farbschema auf die Diagramm-Serie anwendet (siehe Füllschema für Diagramme). Das Farbschema weist der Serie in Zeile 3 die Farbe Dunkelgrün zu. Durch das Freilassen von Zeile 3 befinden sich die Serien Our brand und Competitor 1 nun in den Zeilen 4 und 5, denen das Farbschema jeweils Hellblau und Dunkelblau zuweist.

Optionale Zeilen und Spalten

In den Diagramm-Datenblättern Ihrer PowerPoint-Vorlage können Sie optionale Zeilen und Spalten hinzufügen oder entfernen (siehe Datenblatt-Layout bearbeiten). Dies beeinflusst, wie think-cell die JSON-Daten in den entsprechenden Zeilen und Spalten interpretiert.

Wenn Sie beispielsweise die Zeile 100%= in einem Diagramm-Datenblatt hinzufügen, interpretiert think-cell die zweite Zeile der JSON-Daten als Summen, aus denen die Prozentsätze berechnet werden. Wenn Sie die 100%=-Zeile auslassen, wie in diesem Beispiel, interpretiert think-cell die JSON-Daten in der zweiten Zeile als normale Datenpunkte.

Die folgende Tabelle fasst gängige optionale Zeilen und Spalten, ihre Positionen im Datenblatt und ihre Standardeinstellungen zusammen. Um das Datenlayout eines bestimmten Diagramms zu überprüfen, doppelklicken Sie auf das Diagramm, um dessen Datenblatt zu öffnen.

Option

Contents

Datasheet position

Default setting

Series

Serienbeschriftungen

Spalte 1

Ausgewählt

Category

Kategoriebeschriftungen

Zeile 1

Ausgewählt

100%=

Summen für Prozentberechnungen

Zeile 2 (falls Category ausgewählt)

Zeile 1 (falls Category nicht ausgewählt)

Nicht ausgewählt

Automatisierte Textfelder, Harvey Balls und Kontrollkästchen

Beim Ausfüllen von automatisierten Textfeldern, einzelnen Harvey Bällen und einzelnen Kontrollkästchen mit JSON-Daten erwartet think-cell ein table-Array mit einer Zelle. Innerhalb des table-Arrays wird die Zelle als einzelnes Sub-Array dargestellt, das ein einzelnes Objekt enthält.

{
	"name": "SlideTitle",
	"table": [[{"string": "Competition: Germany"}]]
},

Wenn ein Harvey Ball oder ein Kontrollkästchen Teil einer Tabelle ist, geben Sie einfach den Inhalt des Elements in der entsprechenden Tabellenzelle an.

Zelldatentypen

In einer .ppttc-Datei können Zellen die folgenden Datentypen enthalten.

Data type

Key

Example

Notes

Text

string

{"string": "Our brand"}

Alle druckbaren Unicode-Zeichen (UTF-8) werden unterstützt.

Nummer

number

{"number": 12.5}

Das Dezimaltrennzeichen muss ein Punkt (.) sein.

Kalenderdatum

date

{"date": "2024-01-01"}

Erforderliches Format: "YYYY-MM-DD" (ISO 8601)

Prozentsatz

percentage

{"percentage": 50.5}

Das Dezimaltrennzeichen muss ein Punkt (.) sein. Verwenden Sie kein Prozentzeichen (%).

Füllfarbe der Datenblattzelle

fill

Hex: {"number": 12, "fill": "#ff0000"}

RGB: {"number": 12, "fill": "rgb(255,0,0)"}

Fügen Sie den fill-Hex- oder RBG-Wert zu einem anderen Wert hinzu.

Um die Füllfarben des Datenblatts auf Diagrammmerkmale anzuwenden, wählen Sie in der PowerPoint-Vorlage Use Datasheet Fill (siehe Füllschema für Diagramme).

Leere Zelle

Nicht zutreffend

null

Setzen Sie null nicht in Anführungszeichen.

Vollständiges JSON-Beispiel

Siehe das vollständige JSON-Beispiel von sample.ppttc unten:

[
	{
		"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}]
				]
			}
		]
	}
]

Präsentationen mit JSON-Daten erstellen

Wenn think-cell installiert ist, weist es Ihr Betriebssystem an, .ppttc-Dateien mit think-cell zu öffnen. Um JSON-Dateien mit think-cell im Datei-Explorer (Windows) oder Finder (macOS) zu öffnen – beispielsweise durch Doppelklicken – verwenden Sie die .ppttc-Erweiterung.

Wenn eine JSON-Datei geöffnet wird, führt think-cell Folgendes aus:

  1. think-cell liest die Datei und prüft sie auf Fehler.
  2. think-cell erstellt eine neue Präsentation. Die Präsentation besteht aus Kopien der Folienvorlagen, die im obersten Array der JSON-Datei angegeben sind.
  3. In den Vorlagenkopien füllt think-cell die Elemente (gekennzeichnet durch name) mit den entsprechenden Daten (angegeben in table). Die Elemente werden entsprechend aktualisiert.
  4. Die neue Präsentation wird in PowerPoint geöffnet. Sie können die Präsentation speichern oder weiter bearbeiten.

Präsentationen über die Befehlszeile erstellen

Nur Windows

Erstellen Sie eine Präsentation aus JSON-Daten über die Befehlszeile, indem Sie Folgendes eingeben:

 PPTTC_PATH PPTTC_INPUT -o PPTX_OUTPUT 

Ersetzen Sie Folgendes:

  • PPTTC_PATH: der Pfad von ppttc.exe
  • PPTTC_INPUT: der Pfad Ihrer .ppttc-Datei
  • PPTX_OUTPUT: der Name der erstellten .pptx-Datei, vor dem der Pfad steht, in dem Sie sie speichern möchten

Die ausführbare ppttc.exe-Datei befindet sich im ppttc-Installationsordner von think-cell. Rufen Sie ppttc.exe in Automatisierungsskripten auf, um neue PowerPoint-Präsentationen zu erstellen.

Remote-Bereitstellung von JSON-Daten

Generieren Sie JSON-Daten für eine .ppttc-Datei auf einem Server aus der Ferne. Um eine neue Präsentation zu erstellen, lädt der Nutzer die .ppttc-Datei über einen Webbrowser herunter und öffnet sie mit think-cell.

Ein Beispiel dafür, wie JSON-Daten mit einem Server generiert und heruntergeladen werden können, finden Sie im Installationsordner von think-cell unter /ppttc/sample.html. Die Datei sample.html enthält die folgenden Elemente:

  • HTML-Markup für eine Schaltfläche, die beim Anklicken JSON-Daten spontan kompiliert
  • Einige statische JSON-Daten. Bei einem typischen Anwendungsfall stammen die JSON-Daten aus sonstigen Quellen.
  • Eine JavaScript-Funktion, die die .ppttc-Datei auf den Computer des Nutzers herunterlädt

Nachdem der Nutzer die .ppttc-Datei heruntergeladen hat, kann er sie speichern oder öffnen. Wenn der Nutzer die Datei öffnet, erstellt think-cell eine neue Präsentation unter Verwendung der JSON-Daten (siehe Präsentationen mit JSON-Daten erstellen).

Vorlagen aus der Ferne bereitstellen

Um PowerPoint-Vorlagen über einen Server bereitzustellen, gehen Sie wie folgt vor:

  • Geben Sie in der JSON-Datei eine URL anstelle eines lokalen Pfads für den template Schlüssel an. Das URL-Protokoll kann HTTP oder HTTPS sein.
  • Stellen Sie sicher, dass der Nutzer, der die .ppttc-Datei öffnet, Zugriff auf die Remote-Vorlage hat.

Eine Standardinstallation von think-cell auf dem Computer des Nutzers reicht aus, um think-cell Präsentationen mit Remote-JSON-Daten und Vorlagen zu erstellen.

Präsentationen Remote erstellen

Richten Sie automatisierte Workflows ein, in denen Nutzer think-cell Präsentationen mit benutzerdefinierten Daten herunterladen können. Zum Herunterladen von Präsentationen benötigen Nutzer lediglich einen Webbrowser. Sie müssen think-cell nicht auf ihrem Computer installiert haben.

Für die Einrichtung dieser Arbeitsabläufe ist der think-cell Server erforderlich, der nur unter Windows läuft. Der think-cell Server nimmt JSON-Daten als Eingabe entgegen und liefert PowerPoint-Präsentationen als Ausgabe.

Den think-cell Server ausführen

Nur Windows

Um den think-cell Server zu starten, gehen Sie wie folgt vor:

  1. Führen Sie im think-cell Installationsordner tcserver.exe aus.
  2. Geben Sie eine URL ein, die die IP-Adresse und den Port angibt, auf denen der Server empfangsbereit sein soll. Das Serverprotokoll ist HTTP oder HTTPS.
  3. Wählen Sie Register URL.
  4. Wenn Sie dazu aufgefordert werden, erlauben Sie dem think-cell Server, Änderungen an Ihrem Gerät vorzunehmen.

Um den think-cell Server zu stoppen, gehen Sie wie folgt vor:

  1. Wählen Sie Unregister URL.
  2. Wenn Sie dazu aufgefordert werden, erlauben Sie dem think-cell Server, Änderungen an Ihrem Gerät vorzunehmen.

Das Log-Feld zeigt Folgendes an:

  • Bestätigung, dass der Server die Abfrage einer URL gestartet oder beendet hat
  • Alle Client-Anfragen und Server-Antworten

Der Server akzeptiert JSON-Daten als HTTP-POST-Anfragen mit dem Medientyp application/vnd.think-cell.ppttc+json (auch bekannt als MIME-Typ) und antwortet mit einer PowerPoint-Datei.

Als Autostart-Service ausführen

Um den think-cell Server beim Einschalten Ihres Computers automatisch zu starten, gehen Sie wie folgt vor:

  1. Wählen Sie im think-cell server-Dialogfeld die Option Run as auto-start service aus.
  2. Geben Sie in Password das Kennwort für das in der Option Run as auto-start service genannte Konto ein.

Versuchen Sie es!

Nur Windows

Erstellen Sie mit nur einem Klick eine PowerPoint-Präsentation anhand unseres vorgefertigten Beispiels.

  1. Starten Sie den think-cell Server mit der URL http://127.0.0.1:8080.
  2. Öffnen Sie http://127.0.0.1:8080 in einem Browser.
  3. Die Webseite „ppttc test“ wird geöffnet. Wählen Sie Send .ppttc to server and get .pptx.

Der think-cell Server erstellt aus JSON-Daten eine PowerPoint-Präsentation. Der Browser lädt die Präsentation auf Ihren Computer herunter.

Der HTML-Quellcode der „ppttc-Testseite“ zeigt eine mögliche Verwendung der think-cell JSON-Automatisierung. Der Quellcode kann als Ausgangspunkt für Ihren eigenen automatisierten Workflow dienen. Der Code enthält die folgenden Elemente:

  • HTML-Markup für eine Schaltfläche, die beim Anklicken eine Methode aufruft, die XMLHttpRequest verwendet, um mit dem think-cell Server zu kommunizieren.
  • Einige statische JSON-Daten. Bei einem typischen Anwendungsfall stammen die JSON-Daten aus sonstigen Quellen.
  • Eine JavaScript-Funktion für das Absenden der JSON-Daten an den think-cell Server. Der Server generiert die HTTP-POST-Anfrage mit den statischen JSON-Daten. Die Antwort des Servers ist ein Dateidownload.

Die „ppttc-Testseite“ verwendet JavaScript, um HTTP-POST-Anfragen zu senden und die Antwort des think-cell Servers als PowerPoint-Datei zu speichern. Natürlich funktionieren auch andere Sprachen.