Compléments PowerPoint
Vous pouvez utiliser des compléments PowerPoint afin de créer des solutions attrayantes pour les présentations de vos utilisateurs sur différentes plateformes, notamment Windows, iPad et Mac, ainsi que dans un navigateur. Vous pouvez créer deux types de commandes de complément PowerPoint:
Utilisez des compléments de contenu pour ajouter du contenu HTML5 dynamique à vos présentations. Par exemple, consultez le complément Diagrammes LucidChart pour PowerPoint, qui vous permet d’injecter un diagramme interactif de LucidChart dans votre support de présentation. Pour créer votre propre complément de contenu, vous pouvez commencer par Créer votre premier complément de contenu PowerPoint.
Utilisez des compléments de volet Office pour faire apparaître des informations de référence ou insérer des données dans la diapositive via un service. Par exemple, consultez le complément Stock Photos gratuit Pexels, qui vous permet d’ajouter des photos professionnelles à votre présentation. Pour créer votre propre complément du volet Office, vous pouvez commencer par Créer votre premier complément du volet Office PowerPoint.
Scénarios de complément PowerPoint
Les exemples de code figurant dans l’article vous présentent certaines tâches de base en matière de développement de compléments de contenu pour PowerPoint. Notez également ce qui suit:
Pour afficher des informations, ces exemples dépendent de la fonction
app.showNotification
, qui est incluse dans les modèles de projet de compléments Office Visual Studio. Si vous n’utilisez pas Visual Studio pour développer votre complément, vous devrez remplacer la fonctionshowNotification
par votre propre code.Plusieurs de ces exemples utilisent également un
Globals
objet déclaré au-delà de l’étendue de ces fonctions comme suit :let Globals = {activeViewHandler:0, firstSlideId:0};
Pour utiliser ces exemples, votre projet complément doit référencer Office.js version 1.1 bibliothèque ou version ultérieure.
Détecter l’affichage actif de la présentation et gérer l’événement ActiveViewChanged
Si vous créez un complément de contenu, vous devez obtenir l’affichage actif de la présentation et gérer l’événement, dans le ActiveViewChanged
cadre de votre Office.onReady
gestionnaire.
Remarque
Dans PowerPoint sur le web, l’événement Document.ActiveViewChanged ne se déclenche jamais, car le mode Diaporama est considéré comme une nouvelle session. Dans ce cas, le complément doit extraire la vue active lors du chargement, comme indiqué ci-dessous.
Notez ce qui suit à propos de l’exemple de code :
La
getActiveFileView
fonction appelle la méthode Document.getActiveViewAsync pour indiquer si l’affichage actuel de la présentation est « modifier » (l’un des affichages dans lesquels vous pouvez modifier des diapositives, comme le mode Normal ou Plan) ou « lire » (diaporama ou lecture).La
registerActiveViewChanged
fonction appelle la méthode addHandlerAsync pour inscrire un gestionnaire pour l’événement Document.ActiveViewChanged .
// General Office.onReady function. Called after the add-in loads and Office JS is initialized.
Office.onReady(function() {
// Get whether the current view is edit or read.
const currentView = getActiveFileView();
// Register for the active view changed handler.
registerActiveViewChanged();
// Render the content based off of the currentView.
//....
});
function getActiveFileView()
{
Office.context.document.getActiveViewAsync(function (asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
app.showNotification("Action failed with error: " + asyncResult.error.message);
} else {
app.showNotification(asyncResult.value);
}
});
}
function registerActiveViewChanged() {
Globals.activeViewHandler = function (args) {
app.showNotification(JSON.stringify(args));
}
Office.context.document.addHandlerAsync(Office.EventType.ActiveViewChanged, Globals.activeViewHandler,
function (asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
app.showNotification("Action failed with error: " + asyncResult.error.message);
} else {
app.showNotification(asyncResult.status);
}
});
}
Accéder à une diapositive spécifique dans la présentation
Dans l’exemple de code suivant, la fonctiongetSelectedRange
appelle la méthodeDocument.getSelectedDataAsync pour obtenir l’objet JSON renvoyé parasyncResult.value
, qui contient un tableau nommé slides
. Le slides
tableau contient les ID, les titres et les index de la plage de diapositives sélectionnée (ou de la diapositive active, si plusieurs diapositives ne sont pas sélectionnées). Il enregistre également l’ID de la première diapositive de la plage sélectionnée dans une variable globale.
function getSelectedRange() {
// Gets the ID, title, and index of the current slide (or selected slides) and store the first slide ID. */
Globals.firstSlideId = 0;
Office.context.document.getSelectedDataAsync(Office.CoercionType.SlideRange, function (asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
app.showNotification("Action failed with error: " + asyncResult.error.message);
} else {
Globals.firstSlideId = asyncResult.value.slides[0].id;
app.showNotification(JSON.stringify(asyncResult.value));
}
});
}
Dans l’exemple de code suivant la fonctiongoToFirstSlide
appelle la méthodeDocument.goToByIdAsyncpour accéder à la première diapositive qui a été identifiée par la fonctiongetSelectedRange
illustrée précédemment.
function goToFirstSlide() {
Office.context.document.goToByIdAsync(Globals.firstSlideId, Office.GoToType.Slide, function (asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
app.showNotification("Action failed with error: " + asyncResult.error.message);
} else {
app.showNotification("Navigation successful");
}
});
}
Naviguer entre les diapositives de la présentation
Dans l’exemple de code suivant, la fonctiongoToSlideByIndex
appelle la méthode Document.goToByIdAsync
pour passer à la diapositive suivante dans la présentation.
function goToSlideByIndex() {
const goToFirst = Office.Index.First;
const goToLast = Office.Index.Last;
const goToPrevious = Office.Index.Previous;
const goToNext = Office.Index.Next;
Office.context.document.goToByIdAsync(goToNext, Office.GoToType.Index, function (asyncResult) {
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
app.showNotification("Action failed with error: " + asyncResult.error.message);
} else {
app.showNotification("Navigation successful");
}
});
}
Obtenir l’URL de la présentation
Dans l’exemple de code suivant, la getFileUrl
fonction appelle la méthode Document.getFileProperties pour obtenir l’URL du fichier de présentation.
function getFileUrl() {
// Gets the URL of the current file.
Office.context.document.getFilePropertiesAsync(function (asyncResult) {
const fileUrl = asyncResult.value.url;
if (fileUrl === "") {
app.showNotification("The file hasn't been saved yet. Save the file and try again.");
} else {
app.showNotification(fileUrl);
}
});
}
Créer une présentation
Votre complément peut créer un nouveau classeur, distinct de l’instance de PowerPoint dans laquelle le complément est en cours d’exécution. L’espace de noms PowerPoint a la createPresentation
méthode à cet effet. Lorsque cette méthode est appelée, la nouvelle présentation est immédiatement ouverte et affichée dans une nouvelle instance de PowerPoint. Votre complément reste ouvert et en cours d’exécution avec la présentation précédente.
PowerPoint.createPresentation();
La createPresentation
méthode peut également créer une copie d’une présentation existante. La méthode accepte une représentation sous forme de chaîne codée en Base64 d’un fichier .pptx en tant que paramètre facultatif. La présentation résultante sera une copie de ce fichier, en supposant que l’argument de chaîne est un fichier .pptx valide. La classe FileReader peut être utilisée pour convertir un fichier en chaîne encodée en Base64 requise, comme illustré dans l’exemple suivant.
const myFile = document.getElementById("file");
const reader = new FileReader();
reader.onload = function (event) {
// Strip off the metadata before the Base64-encoded string.
const startIndex = reader.result.toString().indexOf("base64,");
const copyBase64 = reader.result.toString().substr(startIndex + 7);
PowerPoint.createPresentation(copyBase64);
};
// Read in the file as a data URL so we can parse the Base64-encoded string.
reader.readAsDataURL(myFile.files[0]);
Voir aussi
- Développement de compléments Office
- Découvrez le programme pour les développeurs Microsoft 365
- Démarrages rapides de PowerPoint
- Exemples de code PowerPoint
- Enregistrement de l’état et des paramètres d’un complément par document pour les compléments de contenu et du volet Office
- Lecture et écriture de données dans la sélection active d’un document ou d’une feuille de calcul
- Obtention de l’intégralité d’un document pour un complément pour PowerPoint ou Word
- Utiliser des thèmes de document dans vos compléments PowerPoint