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.
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.
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 qui est déclaré au-delà de l’étendue de ces fonctions comme suit :var 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 devrez obtenir la vue active de la présentation et gérerActiveViewChanged
l’événement ActiveViewChanged dans le cadre de votreOffice.Initialize
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.
Collez le code suivant:
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.initialize function. Fires on load of the add-in.
Office.initialize = function(){
//Gets 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 == "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 == "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
. La matriceslides
contient les IDs, les titres et les indexes de plage sélectionnées de diapositives (ou de la diapositive active si plusieurs diapositives ne sont pas sélectionnées). Elle enregistre également l’id de la première diapositive dans la plage sélectionnée à une variable globale.
function getSelectedRange() {
// Get 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 == "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 == "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 == "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() {
//Get 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 comme un paramètre facultatif une représentation de chaîne codée en base 64 d’un fichier .pptx. 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 catégorieFileReader peut être utilisée pour convertir un fichier dans la chaîne codée en base 64 requise, comme indiqué 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
- 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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour