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.

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 :

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 :

  • name spécifie le nom d’un élément, que vous attribuez dans AddRangeData Name (voir Automatisation avancée des rapports).
  • table spé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 table contient 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 table contient 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

string

{"string": "Our brand"}

Tous les caractères Unicode (UTF-8) imprimables sont pris en charge.

Numéro

number

{"number": 12.5}

Le séparateur décimal doit être un point (.).

Date calendaire

date

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

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

Pourcentage

percentage

{"percentage": 50.5}

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

fill

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

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

Ajoutez fill et sa valeur hexadécimale ou RVB à une autre clé.

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

null

Ne pas placer null entre guillemets.

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 :

  1. think-cell lit le fichier et vérifie qu’il ne contient pas d’erreurs.
  2. 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.
  3. Dans ces copies de modèle, think-cell remplit les éléments (identifiés par name) avec les données correspondantes (indiquées dans table). Les éléments sont mis à jour automatiquement.
  4. 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

Windows uniquement

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 de ppttc.exe
  • PPTTC_INPUT : chemin de votre fichier .ppttc
  • PPTX_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

Windows uniquement

Pour démarrer le serveur think-cell, procédez comme suit :

  1. Dans le dossier d’installation de think-cell, exécutez tcserver.exe.
  2. 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.
  3. Sélectionnez Register URL.
  4. 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 :

  1. Sélectionnez Unregister URL.
  2. 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 :

  1. Dans la boîte de dialogue think-cell server, sélectionnez l’option Run as auto-start service.
  2. Dans Password, saisissez le mot de passe du compte indiqué dans l’option Run as auto-start service.

Essayez !

Windows uniquement

Créez une présentation PowerPoint en un seul clic grâce à notre exemple prêt à l’emploi.

  1. Démarrez le serveur think-cell avec l’URL http://127.0.0.1:8080.
  2. Ouvrez http://127.0.0.1:8080 dans un navigateur.
  3. 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 XMLHttpRequest pour 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.