F. Documentation d’API
think-cell vous permet de contrôler certaines fonctionnalités via une API. Vous trouverez ici une Présentation de toutes les fonctions API disponibles, ainsi que des instructions générales sur la configuration de votre environnement de développement pour écrire des macros, des compléments ou des programmes autonomes pouvant y accéder.
- F.1
- Mise en route
- F.2
- Référence API
F.1 Mise en route
L’API de think-cell étant intégrée au modèle Office Automation, elle est accessible avec tout langage permettant de programmer Office, tel que VBA (Visual Basic for Applications) ou C#.
Le point d'entrée dans think-cell est l'objet complément think-cell, accessible via la collection Application.COMAddIns
. Les appels à think-cell sont toujours à liaison tardive et il n'existe donc aucune bibliothèque ou référence de types à ajouter. Pour plus d'explications, reportez-vous à la base de connaissances de Microsoft :
Utilisation d’une association précoce et tardive dans Automation
Certaines fonctions API sont des méthodes d’objet complément think-cell dans PowerPoint et d’objet complément think-cell dans Excel. Nous utiliserons tcPpAddIn
comme références au complément PowerPoint et tcXlAddIn
comme références au complément Excel.
F.1.1 Visual Basic for Applications
Pour écrire des macros à l’aide de Visual Basic for Applications (VBA), vous utilisez l’environnement de développement intégré dans l’application hôte Office. Vous pouvez y accéder en appuyant sur Alt+F11. La définition d’une macro est généralement contenue dans un module, que vous pouvez ajouter via Insérer → Module. Vous pouvez consulter toutes les macros définies pour un document donné en appuyant sur Alt+F8.
Pour indiquer que les appels de méthode au complément think-cell sont à liaison tardive, vous devez définir la variable comprenant la référence comme Object
:
La bibliothèque de types pour l’application hôte Office est toujours référencée par défaut. Si vous avez besoin d’accéder au modèle d’objet d’une autre application Office, vous devez ajouter sa bibliothèque de types comme référence.
Par exemple, si vous souhaitez utiliser une macro dans PowerPoint pour modifier des données dans une feuille Excel avant de mettre à jour un graphique think-cell à partir de ces dernières, vous devez ajouter manuellement la bibliothèque d’objets Microsoft Excel 16.0 via la boîte de dialogue Outils → Références dans l’environnement de développement VBA.
Remarque : 16.0 est le numéro de version d’Office 2016 et des versions ultérieures. Pour Office 2010 ou 2013, vous devez utiliser des bibliothèques d’objets 14.0 ou 15.0, respectivement. Si vous avez plusieurs versions d’Office installées, la boîte de dialogue Références affichera uniquement les bibliothèques d’objets de la dernière version installée. Nous supposerons pour ce qui suit que vous utilisez Office 2016 ou une version ultérieure.
L’utilisation de Application.COMAddIns("thinkcell.addin").Object
vous permettra toujours d’obtenir l’objet complément think-cell de l’application hôte Office actuelle, c’est-à-dire tcPpAddIn
ou tcXlAddIn
, en fonction de si vous l’utilisez dans PowerPoint ou Excel. Veillez à acquérir une instance d’application appropriée pour acquérir une référence à l’objet complément dans l’autre application Office et accéder aux fonctions API qu’il expose.
Par exemple, pour acquérir une référence à tcXlAddIn
depuis PowerPoint :
Veuillez remarquer que cela nécessite d’ajouter la bibliothèque d’objets d’Excel comme référence.
Nous recommandons d’utiliser la déclaration Option Explicit
, qui force la déclaration explicite de toutes les variables et d’aider ainsi à éviter des erreurs de programmation courantes et à améliorer les suggestions fournies par IntelliSense. Vous pouvez l’ajouter automatiquement à tous les modules en activant Outils → Options → Paramètres du code → Exiger une déclaration de variable. Elle est incluse dans tous nos exemples de codes.
F.1.2 C#
Vous pouvez utiliser l’API think-cell à partir de C# lorsque vous développez des compléments et des extensions de codes de documents qui s’exécutent dans une application d’hôte Office, et lorsque vous développez des applications autonomes.
Nous supposerons pour ce qui suit que vous utilisez Visual Studio 2017 ou une version ultérieure pour développer les solutions Office dans C#. Veuillez vous référer à la section suivante pour obtenir des instructions d’installation plus précises concernant le développement de compléments. Nous indiquerons pour chacun de nos exemples de codes le modèle de projet Visual Studio utilisé.
Pour effectuer des appels de méthode à l’objet complément think-cell à liaison tardive, définissez la variable contenant la référence à l’objet complément think-cell comme dynamic
. Il s’agit également du type déduit par le compilateur lorsque vous définissez la référence comme var
, alors vous pouvez simplement écrire :
Ici, ppapp
est une référence à un objet Application
PowerPoint dans lequel think-cell est chargé.
Pour accéder au modèle d’objet d’une application Office, vous devez ajouter sa bibliothèque de types ou son assembly PIA (Primary Interop Assembly) comme référence à votre projet. Nous recommandons d’ajouter, si possible, la bibliothèque de types, étant donné que Visual Studio ajoutera automatiquement une référence à la PIA correspondante si celle-ci est disponible, ou générera un assembly d’interopérabilité à partir de la bibliothèque de types si aucune n’est disponible (voir ici).
Par exemple, pour pouvoir obtenir la référence à un objet complément think-cell comme ci-dessus, nous devrions ajouter la bibliothèque d’objets Microsoft PowerPoint 16.0 située dans l’onglet COM → Bibliothèques de types de la boîte de dialogue Gestionnaire de références. Selon votre type de projet, vous pouvez accéder à cette boîte de dialogue en effectuant un clic droit sur Références ou Dépendances dans Explorateur de solutions et en sélectionnant Ajouter une référence (COM).
Remarque : 16.0 est le numéro de version d’Office 2016 et des versions ultérieures. En utilisant l’option Types d’interopérabilité intégrée, qui est activée par défaut pour une référence à la bibliothèque de types COM, une application compilée avec cette référence sera rétrocompatible et postcompatible avec les autres versions d’Office, aussi longtemps que toutes les interfaces utilisées existent dans leur modèle d’objet. Pour plus d’informations, voir ici.
Les fonctions API de think-cell indique les erreurs en utilisant des HRESULT
COM. Certaines d’entre elles sont automatiquement mappées dans les classes d’exception .NET correspondantes, voir Comment : mapper des HRESULT et des exceptions .
F.1.2.1 Développement de compléments
Pour développer des compléments pour Office ou des extensions de codes pour des documents Office, vous utilisez les modèles de projet Complément VSTO PowerPoint/
Le PIA de l’application hôte Office du modèle sélectionné est toujours chargé par défaut. Si vous avez besoin d’accéder au modèle d’objet d’une autre application Office, vous devez ajouter sa bibliothèque de types comme référence, tel qu’expliqué ci-dessus.
Remarque : Il est impossible d’utiliser les API de think-cell à partir de Compléments Web Office, malheureusement renommé « Compléments Office » par Microsoft, car ils ne peuvent interagir directement avec le modèle d’objet de l’application Office, et notamment d’interagir avec les compléments COM, tels que think-cell.
F.2 Référence API
- F.2.1
- Mise à jour des éléments et modèles de présentation avec des données Excel
- F.2.2
- Contrôle des styles
- F.2.3
- Importer des graphiques Mekko Graphics
- F.2.4
- Divers
F.2.1 Mise à jour des éléments et modèles de présentation avec des données Excel
Les fonctions abordées dans cette section peuvent être utilisées pour mettre à jour des éléments think-cell via un programme avec des données d’Excel. UpdateChart
met à jour des éléments think-cell, spécifiés par un nom qui leur est attribué dans le modèle, avec des données d’une plage Excel passée en argument. Voir également 24. Présentation de l’automatisation sur comment préparer le modèle.
PresentationFromTemplate
instancie un modèle de présentation avec des données à partir d’un classeur Excel lié. Voir également 21. Liaisons de données Excel sur comment créer des liens Excel.
Les fonctions abordées dans cette section sont des méthodes du complément think-cell dans Excel.
F.2.1.1 Tableau de mise à jour
F.2.1.1.1 Signature
VBA
C#
F.2.1.1.2 Description
Cette fonction met à jour tous les éléments dans target
avec le nom strName
avec les données contenues dans rgData
. Pour assurer la bonne interprétation des données pour les graphiques, la plage rgData
doit se conformer à la mise en page de leur feuille de données par défaut, ou sa version transposée, voir également Création d’un graphique à partir d’Excel et Adaptation de la disposition des données. L’utilisation de la version par défaut et transposée est indiquée en paramétrant bTransposed
sur false
ou true
, respectivement. Pour les éléments autres que les graphiques, comme les tableaux, la valeur bTransposed
est ignorée.
target
doit être une Presentation
ou une SlideRange
, ou une Slide
, un Master
ou une CustomLayout
unique.
Le nom strName
ne tient pas compte de la casse. Il doit avoir été attribué au préalable dans PowerPoint à l’aide du contrôle de propriété Nom UpdateChart, tel que décrit dans 24. Présentation de l’automatisation.
Pour garantir le ciblage des éléments corrects, assurez-vous qu’ils sont les seuls éléments avec leur Nom UpdateChart configurés sur strName
dans l’objet passé en tant que pres
.
Si un élément ciblé est lié à une plage de données Excel lors de l'invocation de cette fonction, le lien est interrompu. Après quoi l’élément n'est plus lié à aucune plage Excel.
F.2.1.1.3 Exemples
Pour utiliser ces modèles, préparez une présentation tel que décrit dans 24. Présentation de l’automatisation, et enregistrez-la sous C:\Samples\UpdateChart\template.pptx
.
VBA
Pour utiliser ce modèle, ajoutez-le à un module dans un classeur Excel.
Cela nécessite une référence vers la bibliothèque d’objets Microsoft PowerPoint 16.0 (voir Visual Basic for Applications pour plus de détails).
L’exécution de UpdateChart_Sample
dans un classeur mettra à jour le graphique dans le modèle de présentation avec les données contenues dans la plage A1:D5
de sa première feuille.
C#
Pour utiliser ce modèle, remplacez le code dans Program.cs
du modèle de projet Console App C # par celui-ci
Cela nécessite une référence vers la bibliothèque d’objets Microsoft PowerPoint 16.0, la bibliothèque d’objets Microsoft Excel 16.0 et la bibliothèque d’objets Microsoft Ofice 16.0 (voir C# pour plus de détails).
L’exécution de l’application obtenue mettra à jour le graphique dans le modèle de présentation afin qu’il contienne une série unique nommée « Série 1 » avec les valeurs 1, 2, 3, et qu’il sauvegarde le résultat sous template_updated.pptx
.
F.2.1.2 Présentation depuis un modèle
F.2.1.2.1 Signature
VBA
C#
F.2.1.2.2 Description
Cette fonction utilise des liaisons de données entre le classeur Excel wb
et le modèle comportant le nom du fichier strTemplate
pour créer le modèle en mettant à jour les éléments liés avec les données provenant des plages auxquelles ils sont liés. Il en résulte une nouvelle présentation dans l'instance PowerPoint ppapp
.
strTemplate
peut être un chemin complet ou un chemin relatif qui est alors indiqué par rapport à l'emplacement du fichier du classeur Excel wb
.
Tous les éléments dans strTemplate
liés au classeur Excel wb
sont mis à jour (que l'option de mise à jour automatique soit activée ou non). Dans la présentation obtenue, leurs liaisons de données sont interrompues afin d’éviter toute autre modification de ces éléments.
Les éléments dans strTemplate
qui sont liés à des classeurs Excel autres que wb
ne sont pas modifiés et restent liés. Il est donc possible de mettre à jour des liaisons à partir de plusieurs classeurs Excel, en enregistrant le résultat de cette fonction en tant que nouveau modèle et en la rappelant avec le classeur suivant.
Si vous souhaitez contrôler les couleurs des segments du graphique ou le format des cellules du tableau avec le lien Excel, vous pouvez définir le jeu de couleurs sur Utiliser le remplissage de la feuille de données en superposition (voir Jeu de couleurs) ou les options Utiliser la feuille de données… (voir Mise en forme d’un tableau), respectivement. De même, pour contrôler le format des nombres avec la liaison Excel, activez l'option Utiliser le format Excel (voir Format des nombres).
Veillez à définir les options de formatage pertinentes et le format des nombres des cellules respectives dans Excel avant d'appeler PresentationFromTemplate
.
F.2.1.2.3 Exemples
Pour utiliser ces modèles, créez tout d’abord une présentation avec un graphique empilé lié à la plage G1:K4
de la première feuille dans un classeur Excel, tel que décrit dans Création d’un graphique à partir d’Excel. Enregistrez dans le même répertoire la présentation obtenue sous C:\Samples\PresentationFromTemplate\template.pptx
, et le classeur sous data.xlsx
.
VBA
Pour utiliser ce modèle, ajoutez-le à un module dans le classeur Excel data.xlsx
préparé, tel que décrit ci-dessus.
Cela nécessite une référence vers la bibliothèque d’objets Microsoft PowerPoint 16.0 (voir Visual Basic for Applications pour plus de détails).
L’exécution de PresentationFromTemplate_Sample
modifiera la valeur de la cellule Sheet1!H3
, qui est liée à la première valeur de la première série du graphique contenu dans template.pptx
, de i=1
à 10
, créera une nouvelle présentation avec le graphique dans le modèle mis à jour afin qu’il contienne cette valeur, et qu’elle ne soit plus liée au classeur, puis l’enregistrera sous output_i.pptx
dans le même dossier que le modèle.
C#
Pour utiliser ce modèle, remplacez le code dans Program.cs
du modèle de projet Console App C # par celui-ci
Cela nécessite une référence vers la bibliothèque d’objets Microsoft PowerPoint 16.0, la bibliothèque d’objets Microsoft Excel 16.0 et la bibliothèque d’objets Microsoft Ofice 16.0 (voir C# pour plus de détails).
L’exécution de l’application obtenue ouvrira Excel, chargera le classeur data.xlsx
, modifiera la valeur de la cellule H3
, qui est liée à la première valeur de la première série du graphique contenu dans template.pptx
, de i=1
à 10
, créera une nouvelle présentation avec le graphique dans le modèle mis à jour afin qu’il contienne cette valeur, et qu’elle ne soit plus liée au classeur, puis l’enregistrera sous output_i.pptx
dans le même dossier que le modèle.
F.2.2 Contrôle des styles
Les fonctions abordées dans cette section peuvent être utilisées pour charger, inspecter et supprimer des styles think-cell via un programme. LoadStyle
charge un style à partir d’un fichier de style dans une diapositive de masque ou une mise en page personnalisée unique. LoadStyleForRegion
charge un style à partir d’un fichier de style dans une zone spécifique d’une présentation personnalisée. GetStyleName
retourne le nom du style chargé dans un masque ou une mise en page personnalisée. RemoveStyles
supprime tous les styles d’une mise en page personnalisée.
Voir Création d’un style think-cell et D. Format des fichiers de style pour plus d’informations sur la création ou la modification de styles. Voir Chargement de fichiers de style pour plus d’informations sur leur chargement.
Les fonctions abordées dans cette section sont des méthodes du complément think-cell dans PowerPoint.
F.2.2.1 Charger des styles
F.2.2.1.1 Signature
VBA
C#
F.2.2.1.2 Description
Cette fonction charge le style contenu dans un fichier de style au niveau de FileName
dans un masque ou une mise en page personnalisée, spécifiée via le paramètre CustomLayoutOrMaster
.
CustomLayoutOrMaster
doit être une CustomLayout
ou un Master
.
L’application de cette fonction à une mise en page personnalisée possédant un style local (voir Charger le style pour une zone) provoque la suppression de ce dernier. En d’autres termes, vous devez charger le style à appliquer au reste de la diapositive via cette fonction avant de charger un style limité à une zone.
L’application de cette fonction à un masque provoque la suppression des styles chargés dans les mises en page personnalisées de ce masque, qu’ils soient locaux ou généraux. En d’autres termes, vous devez charger le style à appliquer aux mises en page personnalisées ne comportant pas de style spécifique dans le masque avant de charger un style appliqué à une mise en page personnalisée spécifique via cette fonction.
F.2.2.1.3 Exemples
VBA
Pour utiliser ce modèle, ajoutez le code suivant à un module dans PowerPoint (voir Visual Basic for Applications pour plus de détails).
F.2.2.2 Charger le style pour une zone
F.2.2.2.1 Signature
VBA
C#
F.2.2.2.2 Description
Cette fonction charge le fichier de style au niveau de FileName
dans la mise en page personnalisée CustomLayout
, et le limite à une zone indiquée par Left
, Top
, Width
, Height
. Le style chargé dans le masque ou celui précédemment chargé dans la mise en page personnalisée avec LoadStyle
s’appliquent au reste de la diapositive.
Les paramètres Left
, Top
, Width
, Height
sont indiqués sous la forme de points PowerPoint. Left
et Top
indiquent respectivement la distance des bords gauche et supérieur de la zone depuis les bords gauche et supérieur de la mise en page personnalisée. En général, vous devez les définir sous forme de fractions de la hauteur et de la largeur totales de la diapositive. Par exemple, pour une région qui couvre les deux tiers droits d’une mise en page personnalisée, vous devriez configurer
Vous pouvez également ajouter manuellement une forme à une diapositive ou à une mise en page personnalisée, interroger ses propriétés Left
, Top
, Width
, Height
par programmation et utiliser les valeurs avec LoadStyleForRegion
pour limiter le style à la même région couverte par la forme.
think-cell prend en charge un maximum de deux styles par mise en page personnalisée. L’un est défini avec LoadStyle
et couvre tout ce qui n’est pas limité à une région, l’autre est défini avec LoadStyleForRegion
.
F.2.2.2.3 Exemples
VBA
Pour utiliser ce modèle, ajoutez le code suivant à un module dans PowerPoint (voir Visual Basic for Applications pour plus de détails).
F.2.2.3 Obtenir un nom de style
Pris en charge dans les versions think-cell 13 et ultérieures.
F.2.2.3.1 Signature
VBA
C#
F.2.2.3.2 Description
Cette fonction renvoie le nom du style chargé dans la CustomLayout
ou le Master
CustomLayoutOrMaster
. Il s’agit du même nom que celui spécifié dans l’attribut name
de l’élément <style>
du fichier de style correspondant (voir style).
Elle renvoie une chaîne vide si aucun style n’est chargé dans CustomLayoutOrMaster
. Veuillez noter qu’un master possède toujours un style chargé lorsque think-cell est actif et que le nom d’un style ne peut être vide.
Si un nom est renvoyé pour une CustomLayout
, c’est le nom du style qui est alors chargé avec Charger des styles, et non celui chargé avec Charger le style pour une zone, le cas échéant.
F.2.2.3.3 Exemples
VBA
Pour utiliser ce modèle, ajoutez le code suivant à un module dans PowerPoint (voir Visual Basic for Applications pour plus de détails).
F.2.2.4 Supprimer des styles
F.2.2.4.1 Signature
VBA
C#
F.2.2.4.2 Description
Cette fonction supprime tous les styles de la mise en page personnalisée CustomLayout
. Ensuite, le style chargé dans le masque s’applique. Il peut potentiellement y avoir un style chargé dans la mise en page personnalisée et un autre style limité à une région spécifique de la mise en page personnalisée. Comme RemoveStyles
supprime tous les styles, les deux seront supprimés. Le style chargé dans un masque ne peut pas être supprimé, car il doit toujours y avoir un style valide associé à un masque. Il peut être remplacé par un autre fichier de style.
F.2.2.4.3 Exemples
VBA
Pour utiliser ce modèle, ajoutez le code suivant à un module dans PowerPoint (voir Visual Basic for Applications pour plus de détails).
F.2.3 Importer des graphiques Mekko Graphics
Les fonctions abordées dans cette section peuvent être utilisées pour importer et inspecter via un programme des graphiques créés avec Mekko Graphics dans think-cell. ImportMekkoGraphicsCharts
remplace les graphiques Mekko Graphics avec des graphiques think-cell équivalents. GetMekkoGraphicsXML
extrait la définition XML d’un graphique Mekko Graphics.
Les fonctions abordées dans cette section sont des méthodes du complément think-cell dans PowerPoint.
F.2.3.1 Importer des graphiques Mekko Graphics
Pris en charge dans les versions think-cell 13 et ultérieures.
F.2.3.1.1 Signature
VBA
C#
F.2.3.1.2 Description
Cette fonction remplace tous les graphiques Mekko Graphics de l’ensemble des Shape
qui y sont transmises avec un graphique think-cell équivalent. Les formes doivent toutes se trouver sur la même diapositive. Avant de modifier la diapositive, la fonction créera une copie de la diapositive non-modifiée et l’insérera directement après la version modifiée.
La fonction renvoie une référence à cette copie, si celle-ci a été créée.
Elle renvoie Nothing
/null
, si la présentation n’a pas été modifiée dans le cas où, par exemple, l’ensemble ne contenait pas de graphiques Mekko Graphics.
F.2.3.1.3 Exemples
VBA
Pour utiliser ce modèle, ajoutez-le à un module dans PowerPoint (voir Visual Basic for Applications pour plus de détails).
L’exécution de ImportAll
dans une présentation affectera toutes les diapositives de la présentation et remplacera tous les graphiques Mekko Graphics visibles par des graphiques think-celle équivalents, en créant une copie de chacune des diapositives en contenant en avant de la modifier.
C#
Pour utiliser ce modèle, ajoutez cette méthode à la classe ThisAddIn
du modèle de projet C# Complément VSTO PowerPoint (voir C# et Développement de compléments pour plus de détails).
Ajoutez la ligne suivante à la méthode ThisAddIn_Startup
pour exécuter ImportAll
dans chaque présentation ouverte :
F.2.3.2 Obtenir Mekko Graphics XML
Pris en charge dans les versions think-cell 13 et ultérieures.
F.2.3.2.1 Signature
VBA
C#
F.2.3.2.2 Description
Cette fonction renvoie le XML du graphique Mekko Graphics dans shp
en tant que chaîne. Elle ne modifie pas les formes transmises.
Si shp
n’est pas un graphique Mekko Graphics, cela entraîne une erreur E_INVALIDARG (0x80070057)
.
F.2.3.2.3 Exemples
VBA
Pour utiliser ce modèle, ajoutez le code suivant à un module dans PowerPoint (voir Visual Basic for Applications pour plus de détails).
C#
Pour utiliser ce modèle, remplacez le code dans Program.cs
d’un modèle de projet Console App avec celui-ci.
Cela nécessite une référence vers la bibliothèque d’objets Microsoft PowerPoint 16.0 et la bibliothèque d’objets Microsoft Office 16.0 (voir C# pour plus de détails).
L’exécution de l’application affectera la présentation dans C:\Samples\GetMekkoGraphicsXML\presentation.pptx
et imprimera le XML des graphiques Mekko Graphics contenus vers la console.
F.2.4 Divers
Les fonctions abordées dans cette section sont des méthodes du complément think-cell dans PowerPoint.
F.2.4.1 Commencer l’insertion de tableaux
Pris en charge dans les versions think-cell 13 et ultérieures.
F.2.4.1.1 Signature
VBA
C#
F.2.4.1.2 Description
Faire appel à cette fonction a le même effet que de cliquer sur Tableau dans le menu Éléments dans PowerPoint.
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)