Automatisierung mit JSON-Daten

Erstellen Sie automatisch thinkcell-Präsentationen mit JavaScript Object Notation (JSON). Mit der thinkcell-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 entfernten Quellen verwenden
  • Echtzeitdaten mit einem Webdienst in neue Präsentationen umwandeln

JSON-Dateistruktur

In diesem Abschnitt wird erläutert, wie Sie die JSON-Datei strukturieren. Ausschnitte aus einer Beispieldatei, sample.ppttc, begleiten diese Erläuterung. Das vollständige Beispiel finden Sie am Ende dieses Abschnitts (Vollständiges JSON-Beispiel).

JSON-Schema und Beispieldateien

Im thinkcell-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, die eine .ppttc-Datei einhalten muss, um mit thinkcell eine PowerPoint-Präsentation zu erstellen.

Die Datei template.pptx enthält benannte Elemente (siehe Erweiterte Berichtsautomatisierung). Eine Vorlage kann beliebig viele Folien enthalten.

Die Datei sample.ppttc gibt Folgendes an:

  • Die Vorlagen, die thinkcell zum Erstellen einer neuen Präsentation verwendet
  • Die Reihenfolge, in der die Vorlagen erscheinen
  • Die JSON-Daten, mit denen die Vorlagen gefüllt werden

Vorlagen, Elemente und deren Daten angeben

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

Vorlagen

Das Array enthält eine Reihe von Objekten, die jeweils eine Kopie einer PowerPoint-Vorlage darstellen. In der neuen Präsentation erscheinen die Vorlagen in der Reihenfolge, die Sie im Array angeben. Wenn eine Vorlage mehrere Folien enthält, können Sie die Folienreihenfolge nur ändern, indem Sie die Vorlage in PowerPoint bearbeiten.

Im 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. Als Verzeichnistrennzeichen muss unter Windows ein umgekehrter Schrägstrich (\) verwendet werden – in JSON als doppelter umgekehrter Schrägstrich (\\) maskiert – oder unter macOS ein Schrägstrich (/).
  • Wenn Sie die Vorlage remote gespeichert haben, geben Sie die URL an, unter der die Vorlage gespeichert ist (siehe Vorlagen remote bereitstellen).

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

"template": "template.pptx",
data

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

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

"data": [ ... ]

Elemente

Jedes Objekt im Array data hat zwei Eigenschaften:

  • name gibt den Namen eines Elements an, den Sie in AddRangeData Name zuweisen (siehe Erweiterte Berichtsautomatisierung).
  • table gibt die Daten an, mit denen das Element gefüllt wird.

Wenn zwei Elemente denselben Namen haben, füllt thinkcell sie mit denselben Daten.

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

  • Bei einem Automatisierungs-Textfeld, einer Harvey Ball oder einem Kontrollkästchen enthält das Array table ein einzelnes Unter-Array mit einem einzelnen Objekt. Das Objekt – etwa eine Textzeichenfolge oder eine Zahl – füllt das Textfeld.
  • Bei einem Diagramm oder einer Tabelle enthält das Array table Unter-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 Diagrammdatenblatts

Bei einem Diagramm stellt jedes Unter-Array im Array table eine Zeile im Datenblatt eines Diagramms dar. Informationen zum spezifischen Datenblattlayout eines Diagramms finden Sie im entsprechenden Kapitel des Benutzerhandbuchs, oder öffnen Sie das Datenblatt des Diagramms als Referenz (siehe Diagrammdaten eingeben). Im Folgenden wird die Struktur der Zeilen eines Standarddiagramms beschrieben, wie sie im JSON-Schema angegeben ist.

Erste Zeile

Die erste Zeile ist ein Unter-Array, das Kategoriebeschriftungen enthält. Den Kategoriebeschriftungen geht eine leere erste Zelle (null) voraus. Die Daten in der ersten Zelle werden im Diagramm nicht angezeigt und können daher tatsächlich 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

Nachfolgende Zeilen sind Unter-Arrays, die die Reihenbeschriftungen und die Datenpunkte des Diagramms enthalten. Die Reihenfolge der Elemente in einem Unter-Array entspricht der Reihenfolge der Zellen in einer Datenblattzeile. Die erste Zelle in der Zeile enthält die Reihenbeschriftung, die normalerweise eine Zeichenfolge ist. Nachfolgende 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 ändert das leere Array, wie thinkcell das Farbschema PowerPoint Theme auf die Reihen des Diagramms anwendet (siehe Füllschema des Diagramms). Das Farbschema weist der Reihe in Zeile 3 Dunkelgrün zu. Da Zeile 3 leer bleibt, befinden sich die Reihen Competitor 1 und Our brand nun in den Zeilen 4 und 5, denen das Farbschema Hellblau bzw. Dunkelblau zuweist.

Optionale Zeilen und Spalten

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

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

Die folgende Tabelle fasst häufig verwendete optionale Zeilen und Spalten, ihre Positionen im Datenblatt und ihre Standardeinstellung zusammen. Um das Datenlayout eines bestimmten Diagramms zu prüfen, doppelklicken Sie auf das Diagramm, um sein Datenblatt zu öffnen.

Option

Inhalt

Datenblattposition

Standardeinstellung

Series

Reihenbeschriftungen

Spalte 1

Ausgewählt

Category

Kategoriebeschriftungen

Zeile 1

Ausgewählt

100%=

Summen für Prozentberechnungen

Zeile 2 (wenn Category ausgewählt)
Zeile 1 (wenn Category nicht ausgewählt)

Nicht ausgewählt

Automatisierungs-Textfelder, Harvey Balls und Kontrollkästchen

Beim Füllen von Automatisierungs-Textfeldern, einzelnen Harvey Balls und einzelnen Kontrollkästchen mit JSON-Daten erwartet thinkcell ein Array table mit einer Zelle. Innerhalb des Arrays table wird die Zelle als einzelnes Unter-Array dargestellt, das ein einzelnes Objekt enthält.

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

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

Zellendatentypen

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

Datentyp

Schlüssel

Beispiel

Hinweise

Text

string

{"string": "Our brand"}

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

Zahl

number

{"number": 12.5}

Als Dezimaltrennzeichen muss ein Punkt (.) verwendet werden.

Kalenderdatum

date

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

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

Prozentsatz

percentage

{"percentage": 50.5}

Als Dezimaltrennzeichen muss ein Punkt (.) verwendet werden. Geben Sie kein Prozentzeichen (%) an.

Füllfarbe einer Datenblattzelle

fill

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

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

Fügen Sie fill und den zugehörigen Hex- oder RGB-Wert einem anderen Schlüssel hinzu.

Um Füllfarben aus dem Datenblatt auf Diagrammeigenschaften anzuwenden, wählen Sie in der PowerPoint-Vorlage Use Datasheet Fill aus (siehe Füllschema des Diagramms).

Leere Zelle

Nicht zutreffend

null

Setzen Sie null nicht in Anführungszeichen.

Vollständiges JSON-Beispiel

Das vollständige JSON-Beispiel aus sample.ppttc finden Sie 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 thinkcell installiert ist, weist es Ihr Betriebssystem an, .ppttc-Dateien mit thinkcell zu öffnen. Um JSON-Dateien mit thinkcell im Datei-Explorer (Windows) oder Finder (macOS) zu öffnen – beispielsweise per Doppelklick –, verwenden Sie die Erweiterung .ppttc.

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

  1. thinkcell liest die Datei und prüft sie auf Fehler.
  2. thinkcell erstellt eine neue Präsentation. Die Präsentation besteht aus Kopien der Folienvorlagen, die im obersten Array in der JSON-Datei angegeben sind.
  3. In den Vorlagenkopien füllt thinkcell die Elemente (identifiziert 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:

<var>PPTTC_PATH</var> <var>PPTTC_INPUT</var> -o <var>PPTX_OUTPUT</var>

Ersetzen Sie Folgendes:

  • PPTTC_PATH: der Pfad von ppttc.exe
  • PPTTC_INPUT: der Pfad Ihrer .ppttc-Datei
  • PPTX_OUTPUT: der Name der .pptx-Datei, die Sie erstellen, mit vorangestelltem Pfad, unter dem Sie sie speichern möchten

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

JSON-Daten remote bereitstellen

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

Ein Beispiel dafür, wie JSON-Daten mit einem Server generiert und heruntergeladen werden können, finden Sie im thinkcell-Installationsordner 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 dynamisch zusammenstellt
  • Einige statische JSON-Daten. In einem typischen Anwendungsfall stammen die JSON-Daten aus anderen Quellen.
  • Eine JavaScript-Funktion, die die .ppttc-Datei auf den Computer des Benutzers herunterlädt

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

Vorlagen remote bereitstellen

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

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

Eine Standardinstallation von thinkcell auf dem Computer des Benutzers genügt, um thinkcell-Präsentationen mit Remote-JSON-Daten und -Vorlagen zu generieren.

Präsentationen remote erstellen

Richten Sie automatisierte Workflows ein, in denen Benutzer thinkcell-Präsentationen mit benutzerdefinierten Daten herunterladen. Zum Herunterladen von Präsentationen benötigen Benutzer lediglich einen Webbrowser. thinkcell muss nicht auf ihrem Computer installiert sein.

Zum Einrichten dieser Workflows ist der thinkcell-Server erforderlich, der nur unter Windows läuft. Der thinkcell-Server nimmt JSON-Daten als Eingabe entgegen und liefert PowerPoint-Präsentationen als Ausgabe.

thinkcell-Server ausführen

Nur Windows

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

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

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

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

Im Feld Log wird Folgendes angezeigt:

  • Bestätigung, dass der Server begonnen oder aufgehört hat, auf einer URL zu lauschen
  • Alle Clientanfragen und Serverantworten

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

Als Autostart-Dienst ausführen

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

  1. Wählen Sie im Dialogfeld thinkcell server die Option Run as auto-start service aus.
  2. Geben Sie unter Password das Passwort für das Konto ein, das in der Option Run as auto-start service genannt ist.

Probieren Sie es aus!

Nur Windows

Erstellen Sie mit einem Klick auf eine Schaltfläche eine PowerPoint-Präsentation anhand unseres fertigen Beispiels.

  1. Starten Sie den thinkcell-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 aus.

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

Der HTML-Quellcode der Seite "ppttc test" zeigt eine mögliche Verwendung der thinkcell-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 über XMLHttpRequest mit dem thinkcell-Server kommuniziert.
  • Einige statische JSON-Daten. In einem typischen Anwendungsfall stammen die JSON-Daten aus anderen Quellen.
  • Eine JavaScript-Funktion zum Senden der JSON-Daten an den thinkcell-Server. Der Server generiert die HTTP-POST-Anfrage mit den statischen JSON-Daten. Die Serverantwort ist ein Dateidownload.

Die Seite "ppttc test" verwendet JavaScript, um HTTP-POST-Anfragen zu senden und die Antwort des thinkcell-Servers als PowerPoint-Datei zu speichern. Natürlich funktionieren auch andere Sprachen.

Brauchen Sie Hilfe bei der Fehlerbehebung?

Besuchen Sie unsere Knowledge Base