Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit PowerPoint-Add-Ins können Sie ansprechende Lösungen für die Präsentationen Ihrer Benutzer auf unterschiedlichen Plattformen wie Windows, iPad, Mac und im Browser erstellen. Sie können zwei Typen von PowerPoint-Add-Ins erstellen:
Verwenden Sie Aufgabenbereich-Add-Ins, um Referenzinformationen oder Daten über einen Dienst in die Präsentation einzufügen. Schauen Sie sich zum Beispiel das Add-In Pexels – Free Stock Photos, mit dem Sie professionelle Fotos zu Ihrer Präsentation hinzufügen können. Um ein eigenes Aufgabenbereich-Add-In zu erstellen, können Sie mit Erstellen Ihres ersten PowerPoint-Aufgabenbereich-Add-Ins beginnen.
Verwenden Sie Inhalts-Add-Ins, um dynamische HTML5-Inhalte zu Ihren Präsentationen hinzuzufügen. Sehen Sie sich beispielsweise das Add-In LucidChart Diagrams for PowerPoint an, das interaktive Diagramme aus LucidChart in Ihr Deck einschleust. Um Ein eigenes Inhalts-Add-In zu erstellen, beginnen Sie mit Erstellen Ihres ersten PowerPoint-Inhalts-Add-Ins.
Szenarien mit PowerPoint-Add-Ins
Die Codebeispiele in diesem Artikel veranschaulichen einige grundlegende Aufgaben, die beim Entwickeln von Add-Ins für PowerPoint nützlich sein können.
Fügen Sie eine neue Folie hinzu, und navigieren Sie dann zu dieser Folie.
Im folgenden Codebeispiel ruft die Funktion die addAndNavigateToNewSlide
SlideCollection.add-Methode auf, um der Präsentation eine neue Folie hinzuzufügen. Die Funktion ruft dann die Presentation.setSelectedSlides-Methode auf, um zur neuen Folie zu navigieren.
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();
});
}
Navigieren zu einer bestimmten Folie in der Präsentation
Im folgenden Codebeispiel ruft die Funktion die getSelectedSlides
Presentation.getSelectedSlides-Methode auf, um die ausgewählten Folien abzurufen, und protokolliert dann deren IDs. Die Funktion kann dann auf die aktuelle Folie (oder die erste Folie aus der Auswahl) reagieren.
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...
});
}
Navigieren zwischen Folien in der Präsentation
Im folgenden Codebeispiel ruft die Funktion die goToSlideByIndex
Presentation.setSelectedSlides
-Methode auf, um zur ersten Folie in der Präsentation zu navigieren, die den Index 0 aufweist. Der maximale Folienindex, zu dem Sie in diesem Beispiel navigieren können, ist 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();
});
}
Abrufen der URL der Präsentation
Im folgenden Codebeispiel ruft die getFileUrl
Funktion die Document.getFileProperties-Methode auf, um die URL der Präsentationsdatei abzurufen.
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}`);
}
});
}
Erstellen einer Präsentation
Ihr Add-In kann unabhängig von der PowerPoint-Instanz, in dem das Add-In derzeit ausgeführt wird, eine neue Präsentation erstellen. Der PowerPoint-Namespace verfügt über die createPresentation
-Methode für diesen Zweck. Wenn diese Methode aufgerufen wird, wird die neue Präsentation sofort geöffnet und in einer neuer Instanz von PowerPoint angezeigt. Das Add-In bleibt geöffnet und wird mit der vorherigen Präsentation ausgeführt.
PowerPoint.createPresentation();
Die Methode createPresentation
kann auch eine Kopie einer vorhandenen Präsentation erstellen. Die -Methode akzeptiert eine Base64-codierte Zeichenfolgendarstellung einer .pptx Datei als optionalen Parameter. Die daraus resultierende Präsentation ist eine Kopie dieser Datei, vorausgesetzt, dass das Zeichenfolgenargument eine gültige PPTX-Datei ist. Die FileReader-Klasse kann verwendet werden, um eine Datei in die erforderliche Base64-codierte Zeichenfolge zu konvertieren, wie im folgenden Beispiel veranschaulicht.
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]);
Ein vollständiges Codebeispiel, das eine HTML-Implementierung enthält, finden Sie unter Erstellen einer Präsentation.
Ermitteln der aktiven Ansicht der Präsentation und Behandeln des ActiveViewChanged-Ereignisses
Wenn Sie ein Inhalts-Add-In erstellen, müssen Sie die aktive Ansicht der Präsentation abrufen und das Document.ActiveViewChanged-Ereignis im Rahmen Ihres Office.onReady-Aufrufs behandeln.
Hinweis
In PowerPoint im Web wird das Ereignis nie ausgelöst, da der Document.ActiveViewChanged
Bildschirmpräsentationsmodus als neue Sitzung behandelt wird. In diesem Fall muss das Add-In die aktive Ansicht beim Laden abrufen, wie im folgenden Codebeispiel beschrieben.
Beachten Sie Folgendes zum Codebeispiel:
- Die
getActiveFileView
Funktion ruft die Document.getActiveViewAsync-Methode auf, um zurückzugeben, ob die aktuelle Ansicht der Präsentation "bearbeiten" (eine der Ansichten, in denen Sie Folien bearbeiten können, z. B. Normal, Foliensortierung oder Gliederung) oder "lesen" (Bildschirmpräsentation oder Leseansicht), dargestellt durch die ActiveView-Enumeration . - Die
registerActiveViewChanged
Funktion ruft die Document.addHandlerAsync-Methode auf, um einen Handler für dasDocument.ActiveViewChanged
Ereignis zu registrieren. - Zum Anzeigen von Informationen wird in diesem Beispiel die
showNotification
-Funktion verwendet, die in den Projektvorlagen für Visual Studio Office-Add-Ins enthalten ist. Wenn Sie Visual Studio nicht zum Entwickeln Ihres Add-Ins verwenden, müssen Sie dieshowNotification
Funktion durch Ihren eigenen Code ersetzen.
// 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.
}
Siehe auch
- Entwicklung von Office-Add-Ins
- Weitere Informationen zum Microsoft 365-Entwicklerprogramm
- PowerPoint-Schnellstarts
- PowerPoint-Codebeispiele
- So speichern Sie Add-In-Status und -Einstellungen für Inhalts- und Aufgabenbereich-Add-Ins
- Lesen und Schreiben von Daten in der aktiven Auswahl in einem Dokument oder Arbeitsblatt
- Abrufen des gesamten Dokuments aus einem Add-In für PowerPoint oder Word
- Verwenden von Dokumentdesigns in PowerPoint-Add-Ins
Office Add-ins