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 :

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

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

[!REMARQUE]

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 deuxième 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, cliquez sur Nouveau, 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 , entrez CreateExcelWorkbook, puis choisissez le bouton OK .Le nouveau projet est créé.

  4. Si vous utilisez Visual Basic, ouvrez le menu contextuel du projet CreateExcelWorkbook puis choisissez Propriétés.Choisissez l'onglet Références.Cliquez sur le bouton Ajouter.Si vous utilisez Visual C#, dans Explorateur de solutions, ouvrez le menu raccourci pour le dossier Références puis choisissez 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 le bouton 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.

    [!REMARQUE]

    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, modifiez le fichier Module1.vb.Si vous utilisez Visual C#, ouvrez 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.
                ' In the For loop, both the row index and array index start at 1.
                ' Therefore the value of 4 at array index 0 is not included.
                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.
                        // In the For loop, both the row index and array index start at 1.
                        // Therefore the value of 4 at array index 0 is not included.
                        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, choisissez 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 (Développement Office dans Visual Studio).

  3. Installez l'application sur un ordinateur sur lequel le Framework .NET 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#)