Arbeiten mit Excel-Arbeitsblättern und Excel-Add-In-Befehlen
In dieser Lektion erfahren Sie, wie Sie mit Arbeitsblättern in Excel-Arbeitsmappen arbeiten. Außerdem lernen Sie, wie Sie Add-In-Befehle für Ihre benutzerdefinierten Lösungen erstellen und verwenden.
Arbeitsblätter und eine Arbeitsmappe
Eine Arbeitsmappe ist das Stammobjekt beim Arbeiten mit den Excel-APIs.
Eine Arbeitsmappe ist eine Eigenschaft des Excel-Add-In-Kontexts, context.workbook
und beinhaltet eine Sammlung von Arbeitsblättern.
Ein Arbeitsblatt beinhaltet Sammlungen für charts
,tables
und pivotTables
sowie weitere Eigenschaften.
Grundlegende Arbeitsblatt-Vorgänge
Die Interaktion mit Arbeitsblättern stellt einen grundlegenden Vorgang beim Erstellen eines Excel-Add-Ins dar.
Die Office.js-API kann Arbeitsblätter in einem Arbeitsmappenobjekt durchlaufen, oder Sie können bestimmte Arbeitsblätter anhand der Bezeichnung des Arbeitsblatts, dessen ID oder dessen aktiven Status auswählen.
Entwickler können Arbeitsblätter mithilfe der workbook.worksheets.add()
-Methode erstellen.
Erweiterte Arbeitsblatt-Vorgänge
Es gibt viele erweiterte Arbeitsblattvorgänge, einschließlich Arbeitsblatt-Ereignisse für onActivated
, onAdded
, onDeactivated
und onDeleted
.
Entwickler können außerdem Arbeitsblattbereiche fixieren und Arbeitsblätter schützen oder deren Schutz aufheben.
Die folgenden Codebeispiele demonstrieren häufige Vorgänge, die Entwickler aus benutzerdefinierten Excel-Add-Ins mithilfe der Office.js-API ausführen können:
Abrufen des aktives Arbeitsblatts
const worksheet = context.workbook.worksheets.getActiveWorksheet();
Anrufen eines Arbeitsblatt anhand der Bezeichnung
const worksheet = context.workbook.worksheets.getItem("MyNewWorksheet");
Festlegen des aktiven Arbeitsblatts
someWorksheet.activate();
Erstellen eines Arbeitsblatts
const worksheet = context.workbook.worksheets.add("MyNewWorksheet");
Löschen eines Arbeitsblatts
someWorksheet.delete();
Mit dem
onDeactivated
Ereignis verbindencurrWorksheet.onDeactivated.add((args) => { console.log("Worksheet " + args.worksheetId + " deactivated"); });
Fixieren der ersten Zeile des Arbeitsblatts
currWorksheet.freezePanes.freezeRows(1);
Aktivieren/Deaktivieren des Arbeitsblattschutzes
currWorksheet.load("protection/protected"); return context.sync().then(() => { if (currWorksheet.protection.protected) currWorksheet.protection.unprotect(); else currWorksheet.protection.protect(); }).then(context.sync);
Add-In-Befehle
Add-In-Befehle sind eine einfache Möglichkeit zum Anpassen der standardmäßigen Office-Benutzeroberfläche (UI) mit definierten UI-Elementen, die Aktionen durchführen.
Add-In-Befehle werden im VersionOverrides
-Element eines Add-In-Manifests konfiguriert.
Mit Add-in-Befehlen können vorhandene Kontextmenüs, Registerkarten von Menübändern und Gruppen erweitert oder neue, benutzerdefinierte Registerkarten von Menübändern und Gruppen erstellt werden.
ExtensionPoint-Element
Das Element ExtensionPoint
legt fest, wo Add-In-Befehle in der Office-Benutzeroberfläche angezeigt werden sollen, einschließlich in einer vorhandenen Registerkarte eines Menübands (OfficeTab), einer benutzerdefinierten Registerkarte (CustomTab) oder in einem Kontextmenü, das über einen Klick mit der rechten Maustaste in der Office-Benutzeroberfläche zur Verfügung steht (OfficeMenu).
Add-In-Befehle unterstützen Schaltflächen und Menüsteuerelemente. Mit Schaltflächen werden einzelne Aktionen ausgeführt, Menüs bieten ein Untermenü von Aktionen.
Befehlsaktionen
ShowTaskpane()
ist die häufigste Aktion für einen Add-In-Befehl. Dieser Befehl wird verwendet, um das Add-In in einem Aufgabenbereich zu starten. Die Verwendung eines Add-In-Befehls zum Starten eines Add-Ins gilt als bewährte Methode und wurde in die meisten Office-Add-In-Vorlagen und -Generatoren übernommen.
Die Aktion ExecuteFunction
ermöglicht es einem Add-In-Befehl, ein Skript im Hintergrund auszuführen, ohne dass eine Benutzeroberfläche angezeigt wird. Für diesen Befehlstyp muss im Manifest eine FunctionFile
definiert sein.
Add-In-Befehl im Manifest
Hier erfahren Sie, wie die verschiedenen Elemente im Add-In-Manifest den gerenderten Elementen in der Excel-Benutzeroberfläche zugeordnet sind.
Die folgende Abbildung ist ein Screenshot einer Office-Clientanwendung auf der linken Seite und eine komprimierte Version einer Add-In-Manifestdatei auf der rechten Seite:
Das Manifest beginnt mit dem ExtensionPoint
-Element, das alle für das Office-Menüband definierten Anpassungen enthält:
Der gesamte Inhalt des ExtensionPoint
-Elements definiert die benutzerdefinierte Registerkarte im Menüband und alle Schaltflächen auf der Registerkarte:
Jede Schaltfläche im Menüband wird mittels eines Control
-Elements definiert. Es gibt unterschiedliche Typen von Steuerelementen, die jeweils in der xsi:type
-Eigenschaft definiert sind. Alle Steuerelemente in diesem Menüband sind Schaltflächen:
Innerhalb eines Steuerelements können Entwickler Aktionen oder Elemente definieren. Ein Action
-Element wird verwendet, um eine Aktion auszuführen, z. B. das Anzeigen eines Aufgabenbereichs oder das Ausführen einer benutzerdefinierten Funktion.
Die Items
-Sammlung ermöglicht es Entwicklern, weitere Menüelemente zur Schaltfläche des Menübands hinzufügen – wie in der folgenden Abbildung dargestellt. Beachten Sie auch, dass jedes Untermenü-Element auch ein Action
-Element aufweist:
Add-In-Befehl „ExecuteFunction“
Die mit dem Add-In-Befehl ExecuteFunction
verbundene Aktion ermöglicht es Entwicklern, in JavaScript definierte, benutzerdefinierte Funktionen zu erstellen, die Aktionen ausführen, wenn im Menüband eine Schaltfläche ausgewählt wird.
Definieren Sie zuerst die Funktion in einer Skriptdatei. Fügen Sie beispielsweise den folgenden Code einer neuen Datei in Ihrem Add-In hinzu, die als fnFile.html bezeichnet ist:
<script>
(function () {
// must call Office.initialize
Office.initialize => (reason) {
// Initialize add-in
};
})();
// function must be global
function doStuff(event) {
// do stuff with Office.js
}
</script>
Wenn Sie die Funktion aufrufen möchten, verwenden Sie den Aktionstyp ExecuteFunction
im Add-In-Manifest, um die Funktion aufzurufen, sobald die benutzerdefinierte Schaltfläche ausgewählt ist:
<FunctionFile resid="Contoso.FnFile.Url" />
...
<Control xsi:type="Button" id="Contoso.FnBtn">
<Label resid="Contoso.FnBtn.Label" />
<Icon>
<bt:Image size="16" resid="Contoso.FnBtn.Icon" />
<bt:Image size="32" resid="Contoso.FnBtn.Icon" />
<bt:Image size="80" resid="Contoso.FnBtn.Icon" />
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>doStuff</FunctionName>
</Action>
</Control>
...
<Resources>
<bt:Urls>
<bt:Url id="Contoso.FnFile.Url"
DefaultValue="https://REPLACE_ADD-IN_APP_URL/FnFile.html" />
...
Zusammenfassung
In dieser Lektion haben Sie erfahren, wie Sie mit Arbeitsblättern in Excel-Arbeitsmappen arbeiten. Sie haben außerdem erfahren, wie Sie Add-In-Befehle für Ihre benutzerdefinierten Lösungen erstellen und verwenden können.