Partager via


Procédure pas à pas : incorporation d'informations de type provenant d'assemblys Microsoft Office (C# et Visual Basic)

Si vous incorporez les informations de type dans une application qui référence des objets COM, vous pouvez éliminer le besoin d'un assembly PIA (Primary Interop Assembly). En outre, les informations de type incorporées vous permettent d'obtenir l'indépendance de version pour votre application. Autrement dit, votre programme peut être écrit de façon à utiliser des types de plusieurs versions d'une bibliothèque COM sans requérir d'assembly PIA spécifique pour chaque version. Il s'agit d'un scénario courant pour les applications qui utilisent des objets de bibliothèques Microsoft Office. L'incorporation des informations de type permet à la même version d'un programme de fonctionner avec des versions différentes de Microsoft Office sur différents ordinateurs sans devoir redéployer le programme ou l'assembly PIA pour chaque version de Microsoft Office.

Dans cette procédure pas à pas, vous exécuterez les tâches suivantes :

  • créer une application qui utilise des objets Automation de Microsoft Office et incorpore les informations de type des bibliothèques COM de Microsoft Office ;

  • publier et exécuter l'application avec plusieurs versions de Microsoft Office sans assembly PIA.

Notes

Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur de Visual Studio dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Paramètres Visual Studio.

Composants requis

Elle requiert les éléments suivants :

  • un ordinateur sur lequel Visual Studio et Microsoft Excel sont installés ;

  • un ordinateur sur lequel .NET Framework 4 et une version différente d'Excel sont installés.

Pour créer une application qui fonctionne avec plusieurs versions de Microsoft Office

  1. Démarrez Visual Studio sur un ordinateur sur lequel Excel est installé.

  2. Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.

  3. Dans la boîte de dialogue Nouveau projet, dans le volet Types de projets, vérifiez que Windows est sélectionné. Sélectionnez Application console dans le volet Modèles. Dans la zone Nom, tapez CreateExcelWorkbook, puis cliquez sur OK. Le nouveau projet est créé.

  4. Si vous utilisez Visual Basic, cliquez avec le bouton droit sur le projet CreateExcelWorkbook, puis cliquez sur Propriétés. Cliquez sur l'onglet Références. Cliquez sur le bouton Ajouter. Si vous utilisez Visual C#, dans l'Explorateur de solutions, cliquez avec le bouton droit sur le dossier Références, puis cliquez sur Ajouter une référence.

  5. Sous l'onglet .NET, cliquez sur la version la plus récente de Microsoft.Office.Interop.Excel. Par exemple, Microsoft.Office.Interop.Excel 14.0.0.0. Cliquez sur OK.

  6. Dans la liste de références du projet CreateExcelWorkbook, sélectionnez la référence pour la version de Microsoft.Office.Interop.Excel que vous avez ajoutée à l'étape précédente. Dans la fenêtre Propriétés, assurez-vous que la propriété Embed Interop Types a la valeur True.

    Notes

    L'application créée dans cette procédure pas à pas s'exécute avec différentes versions de Microsoft Office grâce aux informations de type d'interopérabilité incorporées. Si la propriété Embed Interop Types a la valeur False, vous pouvez inclure un assembly PIA pour chaque version de Microsoft Office avec laquelle l'application s'exécutera.

  7. Si vous utilisez Visual Basic, double-cliquez sur le fichier Module1.vb. Si vous utilisez Visual C#, double-cliquez sur le fichier Program.cs. Remplacez le code du fichier par le code suivant.

    Imports Excel = Microsoft.Office.Interop.Excel
    
    Module Module1
    
        Sub Main()
            Dim values = {4, 6, 18, 2, 1, 76, 0, 3, 11}
    
            CreateWorkbook(values, "C:\SampleFolder\SampleWorkbook.xls")
        End Sub
    
        Sub CreateWorkbook(ByVal values As Integer(), ByVal filePath As String)
            Dim excelApp As Excel.Application = Nothing
            Dim wkbk As Excel.Workbook
            Dim sheet As Excel.Worksheet
    
            Try
                ' Start Excel and create a workbook and worksheet.
                excelApp = New Excel.Application
                wkbk = excelApp.Workbooks.Add()
                sheet = CType(wkbk.Sheets.Add(), Excel.Worksheet)
                sheet.Name = "Sample Worksheet"
    
                ' Write a column of values.
                For i = 1 To values.Length - 1
                    sheet.Cells(i, 1) = values(i)
                Next
    
                ' Suppress any alerts and save the file. Create the directory 
                ' if it does not exist. Overwrite the file if it exists.
                excelApp.DisplayAlerts = False
                Dim folderPath = My.Computer.FileSystem.GetParentPath(filePath)
                If Not My.Computer.FileSystem.DirectoryExists(folderPath) Then
                    My.Computer.FileSystem.CreateDirectory(folderPath)
                End If
                wkbk.SaveAs(filePath)
        Catch
    
            Finally
                sheet = Nothing
                wkbk = Nothing
    
                ' Close Excel.
                excelApp.Quit()
                excelApp = Nothing
            End Try
    
        End Sub
    End Module
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using Excel = Microsoft.Office.Interop.Excel;
    
    namespace CreateExcelWorkbook
    {
        class Program
        {
            static void Main(string[] args)
            {
                int[] values = {4, 6, 18, 2, 1, 76, 0, 3, 11};
    
                CreateWorkbook(values, @"C:\SampleFolder\SampleWorkbook.xls");
            }
    
            static void CreateWorkbook(int[] values, string filePath)
            {
                Excel.Application excelApp = null;
                Excel.Workbook wkbk;
                Excel.Worksheet sheet;
    
                try
                {
                        // Start Excel and create a workbook and worksheet.
                        excelApp = new Excel.Application();
                        wkbk = excelApp.Workbooks.Add();
                        sheet = wkbk.Sheets.Add() as Excel.Worksheet;
                        sheet.Name = "Sample Worksheet";
    
                        // Write a column of values.
                        for (int i = 1; i < values.Length; i++)
                        {
                            sheet.Cells[i, 1] = values[i];
                        }
    
                        // Suppress any alerts and save the file. Create the directory 
                        // if it does not exist. Overwrite the file if it exists.
                        excelApp.DisplayAlerts = false;
                        string folderPath = Path.GetDirectoryName(filePath);
                        if (!Directory.Exists(folderPath))
                        {
                            Directory.CreateDirectory(folderPath);
                        }
                        wkbk.SaveAs(filePath);
                }
                catch
                {
                }
                finally
                {
                    sheet = null;
                    wkbk = null;
    
                    // Close Excel.
                    excelApp.Quit();
                    excelApp = null;
                }
            }
        }
    }
    
  8. Enregistrez le projet.

  9. Appuyez sur CTRL+F5 pour générer et exécuter le projet. Vérifiez qu'un classeur Excel a été créé à l'emplacement spécifié dans l'exemple de code : C:\SampleFolder\SampleWorkbook.xls.

Pour publier l'application sur un ordinateur exécutant une autre version de Microsoft Office

  1. Ouvrez le projet créé au cours de cette procédure dans Visual Studio.

  2. Dans le menu Générer, cliquez sur Publier CreateExcelWorkbook. Suivez les étapes de l'Assistant Publication pour créer une version installable de l'application. Pour plus d'informations, consultez Assistant Publication.

  3. Installez l'application sur un ordinateur sur lequel .NET Framework 4 et une version différente d'Excel sont installés.

  4. Lorsque l'installation est terminée, exécutez le programme installé.

  5. Vérifiez qu'un classeur Excel a été créé à l'emplacement spécifié dans l'exemple de code : C:\SampleFolder\SampleWorkbook.xls.

Voir aussi

Tâches

Procédure pas à pas : incorporation de types provenant d'assemblys managés (C# et Visual Basic)

Référence

/link (Visual Basic)

/link (Options du compilateur C#)