Partager via


Ajouter une interface utilisateur personnalisée à un document de feuilles de calcul

Cette rubrique montre comment utiliser les classes du Kit de développement logiciel (SDK) Open XML pour Office afin d’ajouter par programmation une interface utilisateur personnalisée, en modifiant le ruban, à une feuille de calcul Microsoft Excel. Il contient un exemple AddCustomUI de méthode pour illustrer cette tâche.

Création d’une interface utilisateur personnalisée

Avant d’utiliser le Kit de développement logiciel (SDK) Open XML pour créer une personnalisation du ruban dans un classeur Excel, vous devez d’abord créer le contenu de la personnalisation. La description du code XML requis pour créer une personnalisation du ruban dépasse le cadre de cette rubrique. En outre, vous trouverez beaucoup plus facile d’utiliser le ruban Designer dans Visual Studio pour créer la personnalisation pour vous. Pour plus d’informations sur la personnalisation du ruban à l’aide de l’Designer du ruban Visual Studio, consultez Designer du ruban et Procédure pas à pas : création d’un onglet personnalisé à l’aide du ruban Designer. Pour les besoins de cette démonstration, vous aurez besoin d’un fichier XML contenant une personnalisation, et le code suivant fournit une personnalisation simple (ou vous pouvez créer la vôtre à l’aide du ruban Visual Studio Designer, puis cliquer avec le bouton droit pour exporter la personnalisation vers un fichier XML). Les exemples ci-dessous sont les chaînes xml utilisées dans cet exemple. Ce contenu XML décrit une personnalisation du ruban qui inclut un bouton intitulé « Cliquez sur moi ! » dans un groupe nommé Group1 sous l’onglet Add-Ins d’Excel. Lorsque vous cliquez sur le bouton, il tente d’exécuter une macro nommée SampleMacro dans le classeur hôte.

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>"

Créer la macro

Pour cette démonstration, la personnalisation du ruban inclut un bouton qui tente d’exécuter une macro dans le classeur hôte. Pour terminer la démonstration, vous devez créer une macro dans un exemple de classeur pour l’action Cliquer à appeler du bouton.

  1. Créez un nouveau classeur.

  2. Appuyez sur Alt+F11 pour ouvrir le Rédacteur Visual Basic.

  3. Sous l’onglet Insertion , cliquez sur Module pour créer un module.

  4. Ajoutez du code tel que le suivant au nouveau module.

        Sub SampleMacro(button As IRibbonControl)
            MsgBox "You Clicked?"
        End Sub
    
  5. Enregistrez le classeur en tant que classeur Excel Macro-Enabled nommé AddCustomUI.xlsm.

AddCustomUI, méthode

La AddCustomUI méthode accepte deux paramètres :

  • filename : chaîne qui contient un nom de fichier qui spécifie le classeur à modifier.

  • customUIContent : chaîne qui contient le contenu personnalisé (autrement dit, le balisage XML qui décrit la personnalisation).

Interagir avec le classeur

L’exemple de méthode, AddCustomUI, commence par ouvrir le classeur demandé en mode lecture/écriture, comme indiqué dans le code suivant.

using (SpreadsheetDocument document = SpreadsheetDocument.Open(fileName, true))

Utiliser la partie d’extensibilité du ruban

Ensuite, comme indiqué dans le code suivant, l’exemple de méthode tente de récupérer une référence à la partie d’extensibilité du ruban unique. Si le composant n’existe pas encore, le code le crée et stocke une référence au nouveau composant.

// You can have only a single ribbon extensibility part.
// If the part doesn't exist, create it.
RibbonExtensibilityPart part = document.RibbonExtensibilityPart ?? document.AddRibbonExtensibilityPart();

Ajouter la personnalisation

Étant donné une référence à la partie d’extensibilité du ruban, le code suivant se termine en définissant la propriété du CustomUI composant sur un nouvel CustomUI objet qui contient la personnalisation fournie. Une fois la personnalisation en place, le code enregistre l’interface utilisateur personnalisée.

part.CustomUI = new CustomUI(customUIContent);

Exemple de code

Voici l’exemple de code complet AddCustomUI en C# et Visual Basic. Le premier argument passé à doit AddCustomUI être le chemin absolu du fichier AddCustomUI.xlsm créé à partir des instructions ci-dessus.

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);
    }
}

Voir aussi