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.
In diesem Thema wird gezeigt, wie Sie die Klassen im Open XML SDK für Office verwenden, um einem Microsoft Excel-Arbeitsblatt programmgesteuert benutzerdefinierte Ui hinzuzufügen und das Menüband zu ändern. Sie enthält eine Beispielmethode AddCustomUI
zur Veranschaulichung dieser Aufgabe.
Erstellen einer benutzerdefinierten Benutzeroberfläche
Bevor Sie das Open XML SDK zum Erstellen einer Menübandanpassung in einer Excel-Arbeitsmappe verwenden, müssen Sie zuerst den Anpassungsinhalt erstellen. Das Beschreiben des xml-Codes, der zum Erstellen einer Menübandanpassung erforderlich ist, geht über den Rahmen dieses Themas hinaus. Darüber hinaus ist es viel einfacher, die Menüband-Designer in Visual Studio zu verwenden, um die Anpassung für Sie zu erstellen. Weitere Informationen zum Anpassen des Menübands mithilfe des Visual Studio-Designer des Menübands finden Sie unter Menüband Designer und Exemplarische Vorgehensweise: Erstellen einer benutzerdefinierten Registerkarte mithilfe des Menübands Designer.
Für diese Demonstration benötigen Sie eine XML-Datei, die eine Anpassung enthält, und der folgende Code bietet eine einfache Anpassung (oder Sie können eine eigene erstellen, indem Sie das Visual Studio-Menüband Designer verwenden und dann mit der rechten Maustaste klicken, um die Anpassung in eine XML-Datei zu exportieren). Die folgenden Beispiele sind die xml-Zeichenfolgen, die in diesem Beispiel verwendet werden. Dieser XML-Inhalt beschreibt eine Menübandanpassung, die eine Schaltfläche mit der Bezeichnung "Click Me!" in einer Gruppe mit dem Namen Group1 auf der Add-Ins
Registerkarte in Excel enthält. Wenn Sie auf die Schaltfläche klicken, wird versucht, ein Makro namens SampleMacro
in der Hostarbeitsmappe auszuführen.
string xml =
@"<customUI xmlns=""http://schemas.microsoft.com/office/2006/01/customui"">
<ribbon>
<tabs>
<tab idMso=""TabAddIns"">
<group id=""Group1"" label=""Group1"">
<button id=""Button1"" label=""Click Me!"" showImage=""false"" onAction=""SampleMacro""/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>"
Erstellen des Makros
Für diese Demonstration enthält die Menübandanpassung eine Schaltfläche, mit der versucht wird, ein Makro in der Hostarbeitsmappe auszuführen. Um die Demonstration abzuschließen, müssen Sie ein Makro in einer Beispielarbeitsmappe erstellen, damit die Click-Aktion der Schaltfläche aufgerufen werden kann.
Erstellen Sie eine neue Arbeitsmappe.
Drücken Sie ALT+F11, um die Visual Basic-Editor zu öffnen.
Klicken Sie auf der Registerkarte Einfügen auf Modul , um ein neues Modul zu erstellen.
Fügen Sie dem neuen Modul Code wie den folgenden hinzu.
Sub SampleMacro(button As IRibbonControl) MsgBox "You Clicked?" End Sub
Speichern Sie die Arbeitsmappe als Excel-Macro-Enabled Arbeitsmappe mit dem Namen AddCustomUI.xlsm.
AddCustomUI-Methode
Die AddCustomUI
-Methode akzeptiert zwei Parameter:
filename : Eine Zeichenfolge, die einen Dateinamen enthält, der die zu ändernde Arbeitsmappe angibt.
customUIContent – Eine Zeichenfolge, die den benutzerdefinierten Inhalt enthält (d. b. das XML-Markup, das die Anpassung beschreibt).
Interagieren mit der Arbeitsmappe
Die Beispielmethode AddCustomUI
öffnet zunächst die angeforderte Arbeitsmappe im Lese-/Schreibmodus, wie im folgenden Code gezeigt.
using (SpreadsheetDocument document = SpreadsheetDocument.Open(fileName, true))
Arbeiten mit dem Erweiterungsteil des Menübands
Als Nächstes versucht die Beispielmethode, wie im folgenden Code gezeigt, einen Verweis auf den einzelnen Erweiterungsteil des Menübands abzurufen. Wenn der Teil noch nicht vorhanden ist, erstellt der Code es und speichert einen Verweis auf das neue Teil.
// You can have only a single ribbon extensibility part.
// If the part doesn't exist, create it.
RibbonExtensibilityPart part = document.RibbonExtensibilityPart ?? document.AddRibbonExtensibilityPart();
Hinzufügen der Anpassung
Bei einem Verweis auf den Erweiterungsteil des Menübands wird der folgende Code abgeschlossen, indem die -Eigenschaft des CustomUI
Teils auf ein neues CustomUI Objekt festgelegt wird, das die angegebene Anpassung enthält. Sobald die Anpassung eingerichtet ist, speichert der Code die benutzerdefinierte Benutzeroberfläche.
part.CustomUI = new CustomUI(customUIContent);
Beispielcode
Im Folgenden finden Sie das vollständige AddCustomUI
Codebeispiel in C# und Visual Basic. Das erste Argument, das AddCustomUI
an übergeben wird, sollte der absolute Pfad zur Datei AddCustomUI.xlsm sein, die aus den obigen Anweisungen erstellt wurde.
static void AddCustomUI(string fileName, string customUIContent)
{
using (SpreadsheetDocument document = SpreadsheetDocument.Open(fileName, true))
{
// You can have only a single ribbon extensibility part.
// If the part doesn't exist, create it.
RibbonExtensibilityPart part = document.RibbonExtensibilityPart ?? document.AddRibbonExtensibilityPart();
part.CustomUI = new CustomUI(customUIContent);
}
}