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.

Sie können eine Bibliothek mit allen von Ihnen benötigten Diagrammarten und, soweit erforderlich, Versionen mit verschiedenen aktivierten Chart-Features vorbereiten. Dann können Sie diese Vorlagen frei kombinieren und ihnen Daten für die Verwendung in einer neuen Präsentation bereitstellen.

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