Automatisation avec les données JSON
- Page d'accueil
- Ressources
- Manuel de l’utilisateur
- think-cell Charts : Visualisation des données
- Automatisation avancée des rapports
- Automatisation avec les données JSON
Crée automatiquement des présentations think-cell à l’aide de JavaScript Object Notation (JSON). Grâce à l’automatisation JSON de think-cell, vous pouvez :
- Remplir des modèles PowerPoint avec des données (par exemple, titres de diapositives et graphiques)
- Réutiliser et réorganiser des modèles pour créer de nouvelles présentations
- Utiliser des données JSON et des modèles PowerPoint depuis des sources locales ou distantes
- Générer des présentations à partir de données en temps réel grâce à un service Web
Structure du fichier JSON
Cette section explique comment structurer le fichier JSON. Des extraits d’un fichier d’exemple, sample.ppttc, illustrent cette explication. L’exemple complet se trouve à la fin de cette section (Exemple JSON complet).
Dans le dossier d’installation de think-cell, le dossier ppttc contient les fichiers suivants :
- Schéma JSON
ppttc-schema.json - Modèle PowerPoint
template.pptx - Fichier de données JSON
sample.ppttc
Le fichier ppttc-schema.json définit les règles qu’un fichier .ppttc doit respecter pour créer une présentation PowerPoint avec think-cell.
Le fichier template.pptx contient des éléments nommés (voir Automatisation avancée des rapports). Un modèle peut comporter un nombre illimité de diapositives.
Le fichier sample.ppttc spécifie ce qui suit :
- Les modèles que think-cell utilisera pour créer une nouvelle présentation
- L’ordre dans lequel les modèles apparaîtront
- Les données JSON destinées à remplir les modèles
Définir les modèles, les éléments et leurs données
L’exemple sample.ppttc montre un tableau qui représente une présentation PowerPoint (voir Exemple JSON complet).
Modèles
Le tableau contient une série d’objets, chacun représentant une copie d’un modèle PowerPoint. Dans la nouvelle présentation, les modèles apparaissent dans l’ordre indiqué dans le tableau. Si un modèle comporte plusieurs diapositives, l’ordre ne peut être modifié qu’en éditant directement le modèle dans PowerPoint.
Dans le tableau, chaque objet de modèle doit contenir deux propriétés : template et data.
template
La propriété template est une chaîne qui indique le modèle PowerPoint à utiliser. Cette chaîne peut être l’une des formes suivantes :
- Si vous avez stocké le modèle localement, indiquez le chemin d’accès relatif ou absolu du modèle dans le système de fichiers local. Le séparateur de répertoire doit être une barre oblique inverse (\) sous Windows, échappée en double (\\) dans le fichier JSON, ou une barre oblique (/) sous macOS.
- Si vous avez stocké le modèle à distance, indiquez l’URL à laquelle le modèle est hébergé (voir Fournir des modèles à distance).
Dans le cas le plus simple, comme illustré dans Exemple JSON complet, la chaîne template correspond simplement au nom du fichier du modèle PowerPoint, à condition que celui-ci se trouve dans le même dossier que le fichier .ppttc.
"template": "template.pptx",
data
La propriété data est un ensemble d’objets qui spécifient les éléments suivants :
- Graphiques et autres éléments portant un nom AddRangeData (voir Automatisation avancée des rapports)
- Ces éléments sont remplis avec les données correspondantes
Les objets peuvent apparaître dans le tableau data dans n’importe quel ordre, indépendamment de la position de leurs éléments correspondants dans le modèle PowerPoint.
"data": [ ... ]
Éléments
Chaque objet du tableau data comprend deux propriétés :
namespécifie le nom d’un élément, que vous attribuez dans AddRangeData Name (voir Automatisation avancée des rapports).tablespécifie les données qui remplissent cet élément.
Si deux éléments portent le même nom, think-cell les remplit automatiquement avec les mêmes données.
La valeur table est un tableau. La structure de ce dernier dépend du type d’élément :
- Pour un champ de texte automatisé, des Harvey Balls ou une case à cocher, le tableau
tablecontient un seul sous-tableau avec un seul objet. Cet objet, comme une chaîne de texte ou un nombre, remplit le champ de texte. - Pour un graphique ou un tableau, le tableau
tablecontient des sous-tableaux représentant la feuille de données de l’élément.
{
"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}]
]
},
Structure de la feuille de données des graphiques
Pour un graphique, chaque sous-tableau du tableau table correspond à une ligne de la feuille de données d’un graphique. Pour connaître la structure spécifique d’une feuille de données d’un graphique, reportez-vous au chapitre correspondant dans le manuel de l’utilisateur ou ouvrez directement la feuille de données du graphique (voir Saisir les données d’un graphique). La structure suivante décrit les lignes d’un graphique par défaut, telles que définies dans le schéma JSON.
Première ligne
La première ligne est un sous-tableau contenant les étiquettes de catégorie. Une cellule initiale vide (null) précède ces étiquettes. Les données de cette première cellule n’apparaissent pas dans le graphique, elle peut donc contenir n’importe quelle donnée.
[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"}],
Lignes suivantes
Les lignes suivantes sont des sous-tableaux contenant les libellés de série et les points de données du graphique. L’ordre des éléments dans un sous-tableau correspond à l’ordre des cellules dans une ligne de la feuille de données. La première cellule de la ligne contient le libellé de série, qui est généralement une chaîne de texte. Les cellules suivantes de la ligne doivent contenir des nombres ou, pour les graphiques de Gantt, des dates.
[{"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}]
Lignes vides
Pour insérer une ligne vide, utilisez un tableau vide ([]).
Dans l’extrait précédent, le tableau vide modifie la façon dont think-cell applique le PowerPoint Theme jeu de couleurs à une série du graphique (voir Schéma de remplissage du graphique). Le jeu de couleurs attribue le vert foncé à la série figurant sur la ligne 3. En laissant la ligne 3 vide, les séries Competitor 1 et Our brand passent aux lignes 4 et 5, auxquelles le jeu de couleurs attribue respectivement le bleu clair et le bleu foncé.
Lignes et colonnes facultatives
Dans les feuilles de données graphiques de votre modèle PowerPoint, vous pouvez ajouter ou supprimer des lignes et des colonnes facultatives (voir Modifier la disposition de la feuille de données). Cette configuration affecte la façon dont think-cell interprète les données JSON dans les lignes et colonnes correspondantes.
Par exemple, si vous ajoutez la ligne 100%= dans la feuille de données d’un graphique, think-cell interprète la deuxième ligne de données JSON comme les totaux servant au calcul des pourcentages. Si vous omettez la ligne 100%=, comme dans cet exemple, think-cell interprète simplement les données JSON de la deuxième ligne comme étant des points de données.
Le tableau suivant présente les lignes et colonnes optionnelles les plus courantes, leurs positions dans la feuille de données et leurs paramètres par défaut. Pour vérifier la structure des données d’un graphique en particulier, double-cliquez sur le graphique pour ouvrir sa feuille de données.
|
Option |
Contents |
Datasheet position |
Default setting |
|---|---|---|---|
|
Series |
Libellés des séries |
Colonne 1 |
Sélectionné |
|
Category |
Libellés des catégories |
Ligne 1 |
Sélectionné |
|
100%= |
Totaux pour les calculs de pourcentage |
Ligne 2 (si Category sélectionnée) Ligne 1 (si Category non sélectionnée) |
Non sélectionné |
Champs de texte automatisés, Harvey Balls et cases à cocher
Lorsque du remplissage de champs de texte automatisés, de Harvey Balls et de cases à cocher uniques à partir de données JSON, think-cell attend un tableau table contenant une seule cellule. Dans le tableau table, la cellule est représentée par un sous-tableau unique contenant un seul objet.
{
"name": "SlideTitle",
"table": [[{"string": "Competition: Germany"}]]
},
Si une Harvey Ball ou une case à cocher fait partie d’un tableau, indiquez simplement le contenu de l’élément dans la cellule correspondante du tableau.
Types de données des cellules
Dans un fichier .ppttc, les cellules peuvent contenir les types de données suivants.
|
Data type |
Key |
Example |
Notes |
|---|---|---|---|
|
Texte |
|
|
Tous les caractères Unicode (UTF-8) imprimables sont pris en charge. |
|
Numéro |
|
|
Le séparateur décimal doit être un point (.). |
|
Date calendaire |
|
|
Format requis : |
|
Pourcentage |
|
|
Le séparateur décimal doit être un point (.). Ne pas inclure le signe de pourcentage (%). |
|
Couleur de remplissage de cellule de feuille de données |
|
Hex : RVB : |
Ajoutez Pour appliquer les couleurs de remplissage de la feuille de données aux éléments du graphique, sélectionnez Use Datasheet Fill dans le modèle PowerPoint, (voir Schéma de remplissage du graphique). |
|
Cellule vide |
Sans objet |
|
Ne pas placer |
Exemple JSON complet
Consultez ci-dessous un exemple JSON complet extrait de sample.ppttc :
[
{
"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}]
]
}
]
}
]
Créer des présentations à partir de données JSON
Lorsque think-cell est installé, il indique à votre système d’exploitation d’ouvrir les fichiers .ppttc avec think-cell. Pour ouvrir des fichiers JSON avec think-cell dans l’Explorateur de fichiers (Windows) ou dans le Finder (macOS), par exemple en double-cliquant, utilisez l’extension .ppttc.
Lorsqu’un fichier JSON est ouvert, think-cell exécute les opérations suivantes :
- think-cell lit le fichier et vérifie qu’il ne contient pas d’erreurs.
- think-cell crée ensuite une nouvelle présentation. Cette présentation se compose de copies des modèles de diapositives définis dans le tableau principal du fichier JSON.
- Dans ces copies de modèle, think-cell remplit les éléments (identifiés par
name) avec les données correspondantes (indiquées danstable). Les éléments sont mis à jour automatiquement. - La nouvelle présentation s’ouvre dans PowerPoint. Vous pouvez l’enregistrer ou la modifier.
Créer des présentations depuis la ligne de commande
Créez une présentation à partir de données JSON via la ligne de commande en saisissant la commande suivante :
PPTTC_PATH PPTTC_INPUT -o PPTX_OUTPUT
Remplacez les éléments suivants :
PPTTC_PATH: chemin deppttc.exePPTTC_INPUT: chemin de votre fichier .ppttcPPTX_OUTPUT: nom du fichier .pptx que vous créez, précédé du chemin de destination (où vous souhaitez l’enregistrer)
L’exécutable ppttc.exe se trouve dans ppttc dans le dossier d’installation de think-cell. Utilisez ppttc.exe dans vos scripts d’automatisation pour créer de nouvelles présentations PowerPoint.
Fournir des données JSON à distance
Générer à distance des données JSON pour un fichier .ppttc sur un serveur. Pour créer une nouvelle présentation, l’utilisateur télécharge le fichier .ppttc depuis un navigateur Web et l’ouvre avec think-cell.
Pour un exemple de génération et de téléchargement de données JSON à l’aide d’un serveur, consultez /ppttc/sample.html dans le dossier d’installation de think-cell. Le fichier sample.html contient les éléments suivants :
- Marqueur HTML pour un bouton qui, lors d’un clic, compile dynamiquement les données JSON
- Des données JSON statiques. Dans un scénario classique, les données JSON proviennent d’autres sources.
- Une fonction JavaScript permet de télécharger le fichier .ppttc sur l’ordinateur de l’utilisateur
Une fois que l’utilisateur a téléchargé le fichier .ppttc, il peut l’enregistrer ou l’ouvrir. Lorsque l’utilisateur ouvre le fichier, think-cell crée une nouvelle présentation à partir des données JSON (voir Créer des présentations à partir de données JSON).
Fournir des modèles à distance
Pour fournir des modèles PowerPoint via un serveur, procédez comme suit :
- Dans le fichier JSON, indiquez une URL plutôt qu’un chemin local pour la clé
template. Le protocole URL peut être HTTP ou HTTPS. - Assurez-vous que l’utilisateur qui ouvre le fichier .ppttc dispose bien de l’accès au modèle distant.
Une installation standard de think-cell sur l’ordinateur de l’utilisateur suffit pour générer des présentations think-cell avec de données et de modèles JSON distants.
Créer des présentations à distance
Configurez des flux de travail automatisés permettant aux utilisateurs de télécharger des présentations think-cell contenant des données personnalisées. Pour télécharger ces présentations, les utilisateurs ont simplement besoin d’un navigateur Web. Aucune installation de think-cell n’est nécessaire.
La configuration de ces flux de travail nécessite le serveur think-cell, qui fonctionne uniquement sous Windows. Le serveur think-cell reçoit les données JSON en entrée et génère en sortie une présentation PowerPoint.
Exécuter le serveur think-cell
Pour démarrer le serveur think-cell, procédez comme suit :
- Dans le dossier d’installation de think-cell, exécutez
tcserver.exe. - Saisissez une URL indiquant l’adresse IP et le port sur lesquels le serveur doit écouter. Le protocole du serveur peut être HTTP ou HTTPS.
- Sélectionnez Register URL.
- Lorsque le système vous y invite, autorisez le serveur think-cell à apporter des modifications à votre appareil.
Pour arrêter le serveur think-cell, procédez comme suit :
- Sélectionnez Unregister URL.
- Lorsque le système vous y invite, autorisez le serveur think-cell à apporter des modifications à votre appareil.
Le champ Log affiche ce qui suit :
- Confirmation du démarrage ou de l’arrêt de l’écoute sur une URL
- Ensemble des requêtes client et des réponses serveur
Le serveur reçoit les données JSON comme requêtes HTTP POST avec le type de média (MIME) application/vnd.think-cell.ppttc+json et répond avec un fichier PowerPoint.
Exécuter en tant que service de démarrage automatique
Pour démarrer automatiquement le serveur think-cell lorsque vous allumez votre ordinateur, procédez comme suit :
- Dans la boîte de dialogue think-cell server, sélectionnez l’option Run as auto-start service.
- Dans Password, saisissez le mot de passe du compte indiqué dans l’option Run as auto-start service.
Essayez !
Créez une présentation PowerPoint en un seul clic grâce à notre exemple prêt à l’emploi.
- Démarrez le serveur think-cell avec l’URL
http://127.0.0.1:8080. - Ouvrez
http://127.0.0.1:8080dans un navigateur. - La page Web « test ppttc » s’ouvrira. Sélectionnez Send .ppttc to server and get .pptx.
Le serveur think-cell crée une présentation PowerPoint à partir des données JSON. Le navigateur télécharge la présentation sur votre ordinateur.
Le code source HTML de la page « test ppttc » illustre une utilisation possible de l’automatisation JSON avec think-cell. Ce code source peut servir de base pour la mise en place de vos propres flux de travail automatisés. Le code contient les éléments suivants :
- Le balisage HTML pour un bouton qui utilise une méthode utilisant
XMLHttpRequestpour communiquer avec le serveur think-cell. - Des données JSON statiques. Dans un scénario classique, les données JSON proviennent d’autres sources.
- Une fonction JavaScript pour envoyer les données JSON au serveur think-cell. Ce serveur permet de générer la requête HTTP POST avec les données JSON statiques. La réponse du serveur consiste en un téléchargement de fichier.
La page « test ppttc » utilise JavaScript pour envoyer des requêtes HTTP POST et enregistrer la réponse du serveur think-cell sous forme de fichier PowerPoint. D’autres langages de programmation peuvent bien sûr être utilisés.