23. Automatisierung mit JSON-Daten

Sie können Daten in JSON verwenden, um Diagramme zu duplizieren, die ursprünglich als Vorlage erstellt wurden, und ein neues Datenblatt für sie bereitstellen. Sie können die Reihenfolge festlegen, in der bestimmte Vorlagen verwendet werden, um eine neue Präsentation zu erstellen. Vorlagen können auch mehrere Male verwendet werden.

Sowohl die PowerPoint-Vorlagen als auch die JSON-Daten können entweder lokal oder entfernt gespeichert werden. Die JSON-Daten können sogar live von einem Web-Dienst generiert werden.

23.1
Struktur von JSON-Daten für think-cell
23.2
Verwendung der JSON-Daten zur Erstellung einer Präsentation
23.3
Bereitstellung der JSON-Daten aus der Ferne
23.4
Bereitstellung der Vorlage aus einer entfernten Quelle
23.5
Verarbeitung von JSON-Daten aus der Ferne

23.1 Struktur von JSON-Daten für think-cell

Ein Beispiel für JSON-Daten für think-cell ist unten dargestellt und ist in der Datei sample.ppttc im Unterverzeichnis ppttc des Installationsverzeichnisses von think-cell zu finden. Das JSON spezifiziert eine aus einer Verkettung von Vorlagen zu erstellende Präsentation. Es folgt dem Schema unter ppttc/ppttc-schema.json.

Beispiel JSON-Datei für die think-cell Automatisierung

An der Ursprungsebene steht ein Array von Elementen. Jedes Element spezifiziert eine Vorlagendatei und Daten für seine Diagramme. Verschiedene Vorlagen können verkettet werden und eine einzelne Vorlage kann mehr als einmal verwendet werden. Im einfachsten Fall wird eine einzelne Vorlage einmal verwendet, um alle in dieser Vorlage enthaltenen Diagramme mit Daten zu füllen.

Jedes Element im Array aus verketteten Vorlagen enthält zwei Schlüssel: image  template (Vorlage) und image data (Daten). Der Wert für image template ist der Pfad zu einer PowerPoint-Datei mit think-cell Diagrammen, für die ein Name als Bezeichner festgelegt wurde (siehe Einführung in die Automatisierung). Die Vorlagendatei kann auch von einem entfernten Standort empfangen werden, wie beschrieben in Bereitstellung der Vorlage aus einer entfernten Quelle.

Der Wert für den Schlüssel image data ist eine Liste von Datentabellen im JSON-Format für die in der Vorlage enthaltenen Diagramme. Jedes Element in der Liste besitzt zwei Eigenschaften: image name (Name) und image table (Tabelle). image  name spezifiziert ein Diagramm mithilfe seines Namens und image table enthält die Datentabelle.

Die Struktur des Wertes für image table entspricht direkt einem versetzten Datenblatt, wobei die Zeilen Serien und die Spalten Kategorien repräsentieren. Für ein Standard-Diagramm bedeutet das, dass die folgende Reihenfolge von Zeilen repräsentiert wird:

1.
Eine Zeile mit einer leeren Zelle zuerst (null) und dann Zellen mit Kategorienamen.
2.
Eine Zeile mit 100%= Werten. Falls keine 100%= Werte verwendet werden, wird die leere Zeile als image [] spezifiziert.
3.
Mehrere Zeilen mit einer ersten Zelle, die den Seriennamen angibt, und weiteren Zellen, die numerische Werte enthalten.

Jedes Diagramm, dem ein Name gegeben werden kann, kann in JSON referenziert werden. Für deren spezifisches Datenblatt-Layout siehe deren jeweiliges Kapitel, oder öffnen Sie einfach das interne Datenblatt des Diagramms als Referenz.

Hinweis: Jede Zelle innerhalb des think-cell Datenblatts kann jegliche Arten von Text enthalten. Falls gewünscht, kann die erste Zelle in der ersten Zeile ebenfalls gefüllt werden.

Die Daten, die den Wert für einen table-Schlüssel ausmachen, müssen bestimmten Regelsätzen im Schema entsprechen. Der Wert für den table-Schlüssel ist selbst ein Array. Unter-Arrays repräsentieren die Zeilen des Datenblattes. Leere Zeilen können mit einem leeren Array ([]) angezeigt werden. Der Inhalt einer Zelle wird von den in einem solchen Unter-Array aufgeführten Elementen beschrieben. Die Reihenfolge der Elemente entspricht der Reihenfolge der Spalten in einem Datenblatt. Eine leere Zelle muss mithilfe des null-Elementes ausdrücklich beschrieben werden. Zellen mit Inhalt müssen mit einem anderen Schlüssel-Wert-Paar beschrieben werden. In diesem Fall beschreibt der Schlüssel den Datentyp und der Wert enthält die tatsächlichen Daten, die in der Präsentation angezeigt werden sollen. Drei verschiedene Datentypen werden unterstützt:

  • image string (Zeichenkette) für alle Arten von Text. Alle druckbaren Unicode-Zeichen (UTF-8) werden unterstützt. Beispiel: {"string":"Echo"}
  • image number (Zahl) für alle Arten von Zahlen. Das verwendete Dezimaltrennzeichen muss ein Punkt sein. Beispiel: {"number":"5"}
  • image date (Datum) für Daten. Das erforderliche Format ist YYYY-MM-DD. Beispiel: {"date":"2016-09-04"}

Alle Formatierungen der Zelleninhalte (z. B. das Festlegen des Datumsformats) müssen in der PowerPoint-Vorlage vorgenommen werden.

23.2 Verwendung der JSON-Daten zur Erstellung einer Präsentation

Die JSON-Datendatei muss vom Dateityp .ppttc sein. Beim Öffnen einer solchen Datei:

1.
think-cell liest die Datei und prüft ihre strukturelle Integrität.
2.
Eine neue Präsentation wird erstellt. Für jedes Element auf der oberen Ebene der JSON-Datei enthält die neue Präsentation eine Kopie der angegebenen Vorlage.
3.
In den Vorlagenkopien sind die von den name-Werten identifizierten Datenblätter der Diagramme ersetzt mit den Daten in den table-Werten. Alle festen Beschriftungen, Beschriftungspositionen und Differenzpfeilwerte oder andere Diagramm-Features werden aktualisiert.

Im Anschluss daran wird die neue Präsentation dargestellt. Der Nutzer kann ihre Inhalte weiterbearbeiten und sie speichern oder auf eine andere Art verwenden.

23.3 Bereitstellung der JSON-Daten aus der Ferne

Die JSON-Daten in einer .ppttc-Datei können auch von einem entfernten Web-Dienst generiert und dem Nutzer für den Download in einem Web-Browser angeboten werden. Bitte sehen Sie sich das Beispiel unten sowie in sample.html im Unterverzeichnis ppttc des think-cell Installationsverzeichnisses an.


<!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>

Abbildung 23..1: JSON-Beispiel mit entfernter Datenquelle

In unserem Beispiel werden JSON-Daten live zusammengestellt, wenn der Nutzer einen Download anfordert. Während das Beispiel statische Daten einbindet, können Sie natürlich dynamische JSON-Daten aus anderen Datenquellen mithilfe der vom Nutzer auf Ihrer Webseite angegebenen Parameter erstellen.

Wenn eine .ppttc-Datei heruntergeladen wird, kann der Nutzer sich entscheiden, sie als Datei zu speichern oder sie ähnlich wie andere Downloads zu öffnen. Beim Öffnen der Datei werden die JSON-Daten zur Erstellung einer neuen Präsentation genutzt, wie beschrieben in Verwendung der JSON-Daten zur Erstellung einer Präsentation.

23.4 Bereitstellung der Vorlage aus einer entfernten Quelle

Vorlagendateien mit think-cell Diagrammen können ebenfalls über einen entfernten Server bereitgestellt werden. In diesem Fall ist der Wert für den Schlüssel template eine URL statt eines lokalen Pfades, wie im JSON-Beispiel mit einer entfernten Datenquelle oben gezeigt. Die URL kann http als Protokoll festlegen, https für eine sichere Verbindung oder jedes andere Protokoll, das auf dem System gültig ist, auf dem die .ppttc-Datei geöffnet wird.

Bei der Verarbeitung einer .ppttc-Datei, die eine entfernte Vorlage referenziert, empfängt PowerPoint die Vorlagendatei. Daher muss der Nutzer, der die .ppttc-Datei geöffnet hat, über den passenden Zugriff auf die entfernte Vorlage verfügen.

Wenn die JSON-Daten in der Ferne von einem Web-Dienst generiert werden und die Vorlagen ebenfalls in der Ferne aufbewahrt werden, ist nur eine Standard-Installation von think-cell auf dem Rechner des Nutzers notwendig, um dynamisch generierte PowerPoint-Präsentationen mit think-cell Diagrammen zu nutzen.

23.5 Verarbeitung von JSON-Daten aus der Ferne

Sie können die Verarbeitung von JSON-Daten in think-cell als Server ausführen. Die Verbindung von JSON-Daten mit Vorlagen für die Erstellung von PowerPoint-Präsentationen wird in diesem Fall auf einem entfernten Server durchgeführt. Der Server akzeptiert JSON-Fragmente als Eingabe und liefert die verschmolzenen PowerPoint-Präsentationen als Ausgabe, beides über HTTP.

Um den think-cell Server zu starten, öffnen Sie den Installationsordner und führen Sie die Datei tcserver.exe aus. Das folgende Fenster wird angezeigt:

think-cell Server-Setup-Fenster

Um den Server zu starten:

1.
Geben Sie die IP-Adresse und den Port, auf dem der Server auf Anfragen warten soll, in Form einer URL im Feld UrlPrefix an. Der erste Teil der URL legt fest, ob unverschlüsseltes HTTP oder verschlüsseltes HTTPS verwendet wird.
2.
Klicken Sie auf Übernehmen.
3.
Bestätigen Sie die Konfigurationsänderungen an Ihrem System im angezeigten Dialogfenster der Benutzerkontensteuerung (UAC).

Im Feld Protokoll an der Unterseite des Fensters sehen Sie eine Bestätigung, dass der Server gestartet wurde und nun unter einer URL auf Anfragen wartet. Sie sehen im Feld Protokoll auch alle Client-Anfragen und Server-Antworten.

think-cell Server-Fenster mit Protokollnachrichten

Um den Server zu beenden, klicken Sie auf Entfernen. Um die URL zu ändern, geben Sie im Feld UrlPrefix eine neue URL ein und klicken Sie auf Übernehmen.

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

Um mit der Verwendung des Servers zu beginnen, kopieren Sie die URL aus dem Feld UrlPrefix und öffnen Sie sie in einem Browser. Eine Beispielseite wird geöffnet. Der Server dokumentiert sich selbst und der HTML-Quellcode der Beispielseite zeigt seine Nutzung und ein ausführliches Beispiel. Das Beispiel enthält die folgenden Elemente:

  • HTML-Markup für eine Schaltfläche, die mithilfe von XMLHttpRequest eine Methode aufruft, um beim Anklicken mit dem Server zu kommunizieren.
  • Ein statisches JSON-Fragment. Bei Ihrer Nutzung werden Sie die JSON-Daten üblicherweise dynamisch generieren.
  • Eine JavaScript-Funktion für das Absenden der JSON-Daten an den Server. Sie generiert die HTTP-POST-Anfrage mit den statischen JSON-Daten. Die Antwort des Servers wird dem Browser als Dateidownload präsentiert.

Jede andere Methode der Generierung von HTTP-POST-Anfragen und Speicherung der Server-Antwort als PowerPoint-Datei funktioniert ebenfalls. Bei Ihrer Nutzung sind Sie dafür nicht auf JavaScript beschränkt.