Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 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.
Utilisez des compléments de contenu pour ajouter du contenu HTML5 dynamique à vos présentations. Par exemple, consultez le complément LucidChart Diagrams for PowerPoint , qui injecte des diagrammes interactifs de LucidChart dans votre jeu. Pour créer votre propre complément de contenu, commencez par Créer votre premier complément de contenu PowerPoint.
Scénarios de complément PowerPoint
Les exemples de code de cet article illustrent certaines tâches de base qui peuvent être utiles lors du développement de compléments pour PowerPoint.
Ajouter une nouvelle diapositive, puis y accéder
Dans l’exemple de code suivant, la addAndNavigateToNewSlide
fonction appelle la méthode SlideCollection.add pour ajouter une nouvelle diapositive à la présentation. La fonction appelle ensuite la méthode Presentation.setSelectedSlides pour accéder à la nouvelle diapositive.
async function addAndNavigateToNewSlide() {
// Adds a new slide then navigates to it.
await PowerPoint.run(async (context) => {
const slideCountResult = context.presentation.slides.getCount();
context.presentation.slides.add();
await context.sync();
const newSlide = context.presentation.slides.getItemAt(slideCountResult.value);
newSlide.load("id");
await context.sync();
console.log(`Added slide - ID: ${newSlide.id}`);
// Navigate to the new slide.
context.presentation.setSelectedSlides([newSlide.id]);
await context.sync();
});
}
Accéder à une diapositive spécifique dans la présentation
Dans l’exemple de code suivant, la getSelectedSlides
fonction appelle la méthode Presentation.getSelectedSlides pour obtenir les diapositives sélectionnées, puis enregistre leurs ID. La fonction peut ensuite agir sur la diapositive active (ou la première diapositive de la sélection).
async function getSelectedSlides() {
// Gets the ID of the current slide (or selected slides).
await PowerPoint.run(async (context) => {
const selectedSlides = context.presentation.getSelectedSlides();
selectedSlides.load("items/id");
await context.sync();
if (selectedSlides.items.length === 0) {
console.warn("No slides were selected.");
return;
}
console.log("IDs of selected slides:");
selectedSlides.items.forEach(item => {
console.log(item.id);
});
// Navigate to first selected slide.
const currentSlide = selectedSlides.items[0];
console.log(`Navigating to slide with ID ${currentSlide.id} ...`);
context.presentation.setSelectedSlides([currentSlide.id]);
// Perform actions on current slide...
});
}
Naviguer entre les diapositives de la présentation
Dans l’exemple de code suivant, la goToSlideByIndex
fonction appelle la Presentation.setSelectedSlides
méthode pour accéder à la première diapositive de la présentation, qui a l’index 0. L’index de diapositive maximal auquel vous pouvez accéder dans cet exemple est slideCountResult.value - 1
.
async function goToSlideByIndex() {
await PowerPoint.run(async (context) => {
// Gets the number of slides in the presentation.
const slideCountResult = context.presentation.slides.getCount();
await context.sync();
if (slideCountResult.value === 0) {
console.warn("There are no slides.");
return;
}
const slide = context.presentation.slides.getItemAt(0); // First slide
//const slide = context.presentation.slides.getItemAt(slideCountResult.value - 1); // Last slide
slide.load("id");
await context.sync();
console.log(`Slide ID: ${slide.id}`);
// Navigate to the slide.
context.presentation.setSelectedSlides([slide.id]);
await context.sync();
});
}
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 === "") {
console.warn("The file hasn't been saved yet. Save the file and try again.");
} else {
console.log(`File URL: ${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") as HTMLInputElement;
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]);
Pour afficher un exemple de code complet qui inclut une implémentation HTML, consultez Créer une présentation.
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 Document.ActiveViewChanged dans le cadre de votre appel Office.onReady .
Remarque
Dans PowerPoint sur le web, l’événement ne se déclenche jamais, car le Document.ActiveViewChanged
mode Diaporama est traité 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 » (n’importe quel affichage dans lequel vous pouvez modifier des diapositives, comme Normal, Trieuse de diapositives ou Plan) ou « read » (Diaporama ou Mode Lecture), représenté par l’énumération ActiveView . - La
registerActiveViewChanged
fonction appelle la méthode Document.addHandlerAsync pour inscrire un gestionnaire pour l’événementDocument.ActiveViewChanged
. - Pour afficher des informations, cet exemple utilise la
showNotification
fonction , qui est incluse dans les modèles de projet Compléments Office Visual Studio. Si vous n’utilisez pas Visual Studio pour développer votre complément, vous devez remplacer lashowNotification
fonction par votre propre code.
// General Office.onReady function. Called after the add-in loads and Office JS is initialized.
Office.onReady(() => {
// Get whether the current view is edit or read.
const currentView = getActiveFileView();
// Register the active view changed handler.
registerActiveViewChanged();
// Render the content based off of the current view.
if (currentView === Office.ActiveView.Read) {
// Handle read view.
console.log('Current view is read.');
// You can add any specific logic for the read view here.
} else {
// Handle edit view.
console.log('Current view is edit.');
// You can add any specific logic for the edit view here.
}
});
// Gets the active file view.
function getActiveFileView() {
console.log('Getting active file view...');
Office.context.document.getActiveViewAsync(function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {
console.log('Active view:', result.value);
return result.value;
} else {
console.error('Error getting active view:', result.error.message);
showNotification('Error:', result.error.message);
return null;
}
});
}
// Registers the ActiveViewChanged event.
function registerActiveViewChanged() {
console.log('Registering ActiveViewChanged event handler...');
Office.context.document.addHandlerAsync(
Office.EventType.ActiveViewChanged,
activeViewHandler,
function (result) {
if (result.status === Office.AsyncResultStatus.Failed) {
console.error('Failed to register active view changed handler:', result.error.message);
showNotification('Error:', result.error.message);
} else {
console.log('Active view changed handler registered successfully.');
}
});
}
// ActiveViewChanged event handler.
function activeViewHandler(eventArgs) {
console.log('Active view changed:', JSON.stringify(eventArgs));
showNotification('Active view changed', `The active view has changed to: ${eventArgs.activeView}`);
// You can add logic here based on the new active view.
}
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