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
Démarrez Visual Studio sur un ordinateur sur lequel Excel est installé.
Dans le menu Fichier, cliquez sur Nouveau, Projet.
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éé.
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.
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.
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.
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; } } } }
Enregistrez le projet.
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
Ouvrez le projet créé au cours de cette procédure dans Visual Studio.
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).
Installez l'application sur un ordinateur sur lequel le Framework .NET 4 et une version différente d'Excel sont installés.
Lorsque l'installation est terminée, exécutez le programme installé.
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)