26. Automatisation avec les données JSON
Vous pouvez utiliser des données disponibles dans JSON pour dupliquer des graphiques créés en premier lieu comme modèle et fournir une nouvelle feuille de données pour ces dernières. Vous pouvez contrôler l’ordre dans lequel des modèles spécifiques sont utilisés pour créer une nouvelle présentation. Les modèles peuvent également être utilisés plusieurs fois.
Les deux modèles PowerPoint et les données JSON peuvent être stockés localement ou à distance. Les données JSON peuvent même être générées à la volée par un service Web.
- 26.1
- Structure des données JSON pour think-cell
- 26.2
- Création d’une présentation à l’aide des données JSON
- 26.3
- Obtenir des données JSON à distance
- 26.4
- Accéder au modèle à distance
- 26.5
- Traitement des données JSON à distance
26.1 Structure des données JSON pour think-cell
Un exemple des données JSON pour think-cell est donné ci-dessous et peut se trouver dans le dossier sample.ppttc
du sous-dossier ppttc
du répertoire d’installation think-cell. Le JSON indique une présentation à créer à partir d’une concaténation de modèles. Il correspond au schéma disponible dans ppttc/ppttc-schema.json
.
Au niveau de la racine se trouve un ensemble d’éléments. Chaque élément indique un fichier modèle et des données pour ses graphiques. Il est possible de concaténer différents modèles et un seul modèle peut être utilisé plus d’une fois. Dans le cas le plus simple, un seul modèle est utilisé une seule fois pour remplir tous les tableaux contenus dans le modèle en question avec des données.
Chaque élément de l’ensemble des modèles concaténés contient deux clés : template
et data
. La valeur de template
correspond au chemin d’accès d’un fichier PowerPoint comportant des graphiques think-cell pour lesquels un nom a été défini comme identificateur (voir 24. Présentation de l’automatisation). Le fichier modèle peut également être récupéré à partir d’un emplacement distant, comme décrit dans Obtenir des données JSON à distance.
La valeur de la clé data
est une liste de tableaux de données au format JSON des graphiques contenus dans le modèle. Chaque élément de la liste possède deux propriétés : name
et table
. name
indique un graphique utilisant son nom et table
contient le tableau de données.
La structure de la valeur du table
correspond directement à une feuille de données non transposée, avec les lignes qui représentent des séries et les colonnes qui représentent des catégories. Pour un graphique par défaut qui signifie que l’ordre des lignes suivantes sera représenté :
- Une ligne comportant d’abord une cellule vide (
null
), puis des cellules avec des noms de catégories. - Une ligne de 100 % valeurs. Si aucune valeur 100 % n’est utilisée, la ligne vide sera désignée comme
[]
. - Plusieurs lignes avec une première cellule qui indique le nom de la série et les cellules subséquentes qui contiennent des valeurs numériques.
Un graphique auquel on peut attribuer un nom peut être référencé dans JSON. Pour leur structure spécifique de feuille de données, veuillez vous référer au chapitre correspondant ou ouvrez simplement la feuille de données interne du graphique pour référence.
Remarque: Les cellules présentes dans la plage de la feuille de données think-cell peuvent contenir tout type de texte. Si nécessaire, la première cellule de la première ligne peut également être remplie.
Les données composant la valeur d’une clé table
doivent respecter certaines règles définies dans le schéma. La valeur de la clé table
elle-même est un tableau. Les sous-ensembles représentent les lignes de la feuille de données. Les lignes vides peuvent être spécifiées en utilisant un tableau vide []
. Le contenu d’une cellule est décrit par les éléments énumérés dans ce type de sous-ensemble. L’ordre des éléments correspond à l’ordre des colonnes d’une feuille de données. Une cellule vide doit être décrite de manière explicite à l’aide de l’élément null
. Les cellules dont le contenu doit être décrit à l’aide d’une autre paire clé-valeur. Dans ce cas, la clé décrit le type de données et la valeur contient les données qui doivent être effectivement affichées dans la présentation. Trois types de données sont pris en charge :
string
pour toute sorte de texte. Tous les caractères unicode (UTF-8) sont pris en charge. Exemple : {"string":"Echo"}
number
pour toute sorte de nombres. Le séparateur décimal utilisé doit être un point. Exemple : {"number":"5"}
date
pour les dates. Le format requis est YYYY-MM-DD
. Exemple : {"date":"2016-09-04"}
Toute mise en forme du contenu des cellules (par exemple, indication du format de la date) doit être effectuée dans le modèle PowerPoint.
Pour les champs de texte nommés, l’élément table
est constitué d’une seule « cellule » sur une « ligne ». Vous devez donc utiliser un ensemble JSON comme dans le fragment suivant, qui apparaîtra une fois pour chaque champ de texte nommé au sein d’un élément data
:
26.2 Création d’une présentation à l’aide des données JSON
Le fichier de données JSON doit avoir un type de fichier de .ppttc
. Lors de l’ouverture de ce type de fichier :
- think-cell lit le fichier et vérifie son intégrité structurale.
- Une nouvelle présentation est créée. Pour chaque élément situé au niveau supérieur du fichier JSON, la nouvelle présentation contient une copie du modèle spécifié.
- Dans les copies de modèles, les feuilles de données des graphiques identifiés par les valeurs
name
sont remplacées par les données des valeurstable
. Les libellés de totaux, les placements des libellés et les valeurs des flèches de différence ou les autres décorations de graphique sont mis à jour.
Par la suite, la nouvelle présentation s’affiche. L’utilisateur peut continuer à modifier son contenu et l’enregistrer ou l’utiliser d’une autre manière.
Vous pouvez également créer une présentation à partir de données JSON sur la ligne de commande :
ppttc input.ppttc -o output.pptx
L’exécutable ppttc.exe
est situé dans le dossier d’installation de think-cell. L’appel ppttc.exe
est facile à intégrer dans les flux d’automatisation.
26.3 Obtenir des données JSON à distance
Les données JSON disponibles dans un fichier .ppttc
peuvent être également générées à distance par un service Web et mises à la disposition de l’utilisateur pour téléchargement dans un navigateur Web. Veuillez consulter l’échantillon prévu ci-dessous et disponible dans sample.html
du sous-dossier ppttc
du répertoire d’installation think-cell.
Dans notre exemple, les données JSON sont compilées à la volée lorsque l’utilisateur sollicite un téléchargement. Si l’exemple inclut des données statiques, vous pouvez naturellement créer JSON de manière dynamique à partir d’autres sources de données à l’aide des paramètres indiqués par l’utilisateur sur votre site Web.
Lorsqu’un fichier .ppttc
est téléchargé, l’utilisateur peut choisir d’enregistrer le fichier ou de l’ouvrir de manière semblable à tous les autres téléchargements. Lors de l’ouverture du fichier, les données JSON servent à créer une nouvelle présentation, telle que décrit à Création d’une présentation à l’aide des données JSON.
26.4 Accéder au modèle à distance
Les fichiers du modèle comportant les graphiques think-cell peuvent également être fournis par le biais d’un serveur distant. Dans ce cas, la valeur de la clé template
est une URL au lieu d’un chemin d’accès local, comme indiqué dans l’exemple JSON distant. L’URL peut spécifier http
comme le protocole, https
pour une connexion sécurisée ou tout autre protocole valable sur ce système où le fichier .ppttc
est ouvert.
Lors du traitement d’un fichier .ppttc
qui se rapporte à un modèle distant, PowerPoint récupère le fichier du modèle. Par conséquent, l’utilisateur qui a ouvert le fichier .ppttc
a besoin d’un accès approprié au modèle distant.
Lorsque les données JSON sont générées à distance par un service Web et que les modèles sont également sauvegardés à distance, seule une installation think-cell standard est nécessaire sur la machine de l’utilisateur pour utiliser les présentations PowerPoint générées dynamiquement avec des graphiques think-cell.
26.5 Traitement des données JSON à distance
Vous pouvez gérer le traitement des données JSON de think-cell comme un serveur. Dans ce cas, la fusion des données JSON avec des modèles pour créer des présentations PowerPoint est réalisée sur un serveur à distance. Le serveur reçoit des fragments JSON comme entrée et fournit les présentations PowerPoint fusionnées comme résultat, les deux via HTTP.
Pour démarrer le serveur think-cell, allez au dossier d’installation et exécutez tcserver.exe. La boîte de dialogue suivante s’ouvre :
Pour démarrer le serveur :
- Spécifiez l’adresse et le port IP que le serveur doit écouter dans le champ UrlPrefix sous la forme d’une URL. La première partie de l’URL détermine si le protocole utilisé est chiffré (HTTPS) ou non chiffré (HTTP).
- Cliquez sur le bouton Appliquer.
- Confirmez les modifications apportées à la configuration de votre système dans la boîte de dialogue du Contrôle du compte d’utilisateur (UAC).
Dans le champ Journal en bas de la fenêtre, une confirmation que le serveur a commencé et est maintenant en train d’écouter une URL s’affiche. Vous verrez également toutes les demandes des clients et les réponses du serveur dans le champ Journal.
Pour arrêter le serveur, cliquez sur le bouton Supprimer. Pour modifier l’URL, saisissez une nouvelle URL dans le champ UrlPrefix et cliquez sur Appliquer.
Le serveur reçoit les données JSON comme requêtes HTTP POST de type MIME application/vnd.think-cell.ppttc+json
et répond avec un fichier PowerPoint.
Pour commencer à utiliser le serveur, veuillez copier l’URL du champ UrlPrefix et ouvrez-la dans un navigateur. Un exemple de page s’affiche. Le serveur est auto-documenté, grâce au code source HTML de l’exemple de page montrant son utilisation ainsi qu’un exemple plus élaboré. L’exemple contient les éléments suivants :
- le balisage HTML pour un bouton qui utilise une méthode utilisant
XMLHttpRequest
pour communiquer avec le serveur lorsque l’on clique dessus ; - un fragment JSON statique ; Dans le cadre de votre utilisation, vous générerez typiquement les données JSON de manière dynamique.
- une fonction JavaScript pour envoyer les données JSON au serveur. Cela permet de générer la requête HTTP POST avec les données JSON statiques. La réponse du serveur est présentée au navigateur comme un téléchargement de fichier.
Toute autre méthode de génération de requêtes HTTP POST et d’enregistrement de la réponse du serveur comme fichier PowerPoint fonctionne également. Dans le cadre de votre utilisation, vous n’êtes pas limité à l’utilisation de JavaScript à ces fins.
Graphique
-
4.Présentation de la création de graphiques
-
5.Saisie de données
-
6.Libellés de texte
-
7.Histogrammes, graphique à lignes et graphiques à aires
-
8.Éléments décoratifs du graphique
-
9.Graphique en cascade
-
10.Graphiques Mekko
-
11.Graphique en secteurs et circulaire
-
12.Graphiques en nuage de points et à bulles
-
13.Diagramme de Gantt (chronologie)