Arbeiten mit Excel-Arbeitsblättern und Excel-Add-In-Befehlen

Abgeschlossen

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.

Diagramm der Excel-Objekthierarchie

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 verbinden

    currWorksheet.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:

Screenshot einer Office-Anwendung neben einem Add-In-Manifestauszug

Das Manifest beginnt mit dem ExtensionPoint-Element, das alle für das Office-Menüband definierten Anpassungen enthält:

Screenshot einer Office-Anwendung neben einem Add-In-Manifestauszug mit hervorgehobenem Erweiterungspunkt

Der gesamte Inhalt des ExtensionPoint-Elements definiert die benutzerdefinierte Registerkarte im Menüband und alle Schaltflächen auf der Registerkarte:

Screenshot einer Office-Anwendung neben einem Add-In-Manifestauszug mit hervorgehobener benutzerdefinierter Registerkarte in beiden.

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:

Screenshot einer Office-Anwendung neben einem Add-In-Manifestauszug mit hervorgehobenen und nummerierten benutzerdefinierten Registerkarten.

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:

Screenshot einer Office-Anwendung neben einem Add-In-Manifest mit hervorgehobenen und nummerierten Item-Elementen in beiden.

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.