Exemplarische Vorgehensweise: Einbetten von Typinformationen aus Microsoft Office-Assemblys (C# und Visual Basic)

Wenn Sie Typinformationen in eine Anwendung einbetten, die auf COM-Objekte verweist, ist die Verwendung einer primären Interopassembly (PIA) nicht mehr erforderlich.Darüber hinaus wird die Anwendung durch die eingebetteten Typinformationen versionsunabhängig.Ihr Programm kann daher für Typen aus unterschiedlichen Versionen einer COM-Bibliothek geschrieben werden; eine versionsspezifische PIA ist nicht erforderlich.Dies ist ein allgemeines Szenario für Anwendungen, die Objekte aus Microsoft Office-Bibliotheken verwenden.Mithilfe von eingebetteten Typinformationen kann ein Build eines Programms verschiedene Versionen von Microsoft Office auf unterschiedlichen Computern verwenden, ohne dass das Programm oder die PIA für jede Version von Microsoft Office erneut bereitgestellt werden müssen.

Im Verlauf dieser exemplarischen Vorgehensweise führen Sie folgende Aufgaben aus:

  • So erstellen Sie eine Anwendung, die mit mehreren Versionen von Microsoft Office kompatibel ist.

  • So veröffentlichen Sie die Anwendung auf einem Computer, auf dem eine andere Version von Microsoft Office installiert ist.

HinweisHinweis

Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

Vorbereitungsmaßnahmen

Für diese exemplarische Vorgehensweise wird Folgendes vorausgesetzt:

  • Ein Computer, auf dem Visual Studio und Microsoft Excel installiert sind.

  • Ein zweiter Computer, auf dem .NET Framework 4 und eine andere Version von Excel installiert sind.

So erstellen Sie eine Anwendung, die mit mehreren Versionen von Microsoft Office kompatibel ist

  1. Starten Sie Visual Studioauf einem Computer, auf dem Excel installiert ist.

  2. Wählen Sie im Menü Datei die Optionsfolge Neu, Projekt aus.

  3. Überprüfen Sie, ob im Dialogfeld Neues Projekt im Bereich Projekttypen der Eintrag Windows ausgewählt ist.Wählen Sie im Bereich Vorlagen die Option Konsolenanwendung aus.Im Feld geben Sie NameCreateExcelWorkbook ein und klicken Sie dann auf die Schaltfläche OK aus.Das neue Projekt wird erstellt.

  4. Wenn Sie Visual Basic verwenden, öffnen Sie das Kontextmenü für das CreateExcelWorkbook-Projekt und wählen Sie dann Eigenschaften aus.Wählen Sie die Registerkarte aus. VerweiseWählen Sie die Schaltfläche Hinzufügen aus.Wenn Sie Visual C#, in Projektmappen-Explorer verwenden, öffnen Sie das Kontextmenü für den Ordner Verweise und wählen Sie dann Verweis hinzufügen aus.

  5. Klicken Sie auf der Registerkarte .NET die aktuellste Version von Microsoft.Office.Interop.Excel aus.Beispiel: Microsoft.Office.Interop.Excel 14.0.0.0..Klicken Sie auf die Schaltfläche OK.

  6. Wählen Sie in der Liste der Verweise für das CreateExcelWorkbook-Projekt den Verweis für Microsoft.Office.Interop.Excel aus, den Sie im vorherigen Schritt hinzugefügt haben.Vergewissern Sie sich, dass die Embed Interop Types-Eigenschaft im Eigenschaftenfenster auf True festgelegt ist.

    HinweisHinweis

    Die in dieser exemplarischen Vorgehensweise erstellte Anwendung kann aufgrund der eingebetteten Interop-Typinformationen mit verschiedenen Versionen von Microsoft Office ausgeführt werden.Wenn die Embed Interop Types-Eigenschaft auf False festgelegt ist, müssen Sie eine PIA für jede Version von Microsoft Office einschließen, mit der die Anwendung ausgeführt wird.

  7. Wenn Sie Visual Basic verwenden, öffnen Sie die Datei Module1.vb.Wenn Sie Visual C# verwenden, öffnen Sie die Datei Program.cs.Ersetzen Sie den Code in der Datei durch den folgenden Code:

    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. Speichern Sie das Projekt.

  9. Drücken Sie STRG+F5, um das Projekt zu erstellen und auszuführen.Überprüfen Sie, ob eine Excel-Arbeitsmappe an dem Speicherort erstellt wurde, der im Beispielcode angegebenen ist: C:\SampleFolder\SampleWorkbook.xls.

So veröffentlichen Sie die Anwendung auf einem Computer, auf dem eine andere Version von Microsoft Office installiert ist

  1. Öffnen Sie das Projekt, das Sie in dieser exemplarischen Vorgehensweise erstellt haben, in Visual Studio.

  2. Klicken Sie im Menü Build wählen Sie CreateExcelWorkbook veröffentlichen aus.Führen Sie die Schritte des Webpublishing-Assistenten aus, um eine installierbare Version der Anwendung zu erstellen.Weitere Informationen finden Sie unter Veröffentlichungsassistent (Office-Entwicklung in Visual Studio).

  3. Installieren Sie die Anwendung auf einem Computer, auf dem .NET Framework 4 und eine andere Version von Excel installiert sind.

  4. Führen Sie das installierte Programm aus, sobald die Installation abgeschlossen ist.

  5. Überprüfen Sie, ob eine Excel-Arbeitsmappe an dem Speicherort erstellt wurde, der im Beispielcode angegebenen ist: C:\SampleFolder\SampleWorkbook.xls.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Einbetten von Typen aus verwalteten Assemblys (C# und Visual Basic)

Referenz

/link (Visual Basic)

/link (C#-Compileroptionen)