Sdílet prostřednictvím


Návod: Vložení informací o typu ze sestavení sady Microsoft Office (C# and Visual Basic)

Vložíte-li informace o typu do aplikace, která odkazuje na objekty modelu COM, můžete vyloučit potřebu primárního sestavení interop (PIA).Vložené informace o typu navíc umožňují dosáhnout nezávislosti na verzi pro vaši aplikaci.To znamená, že program může být napsán tak, aby využíval typy z více verzí knihovny COM bez nutnosti zvláštního PIA pro každou verzi.To je obvyklý scénář pro aplikace, které používají objekty z knihoven Microsoft Office.Zahrnutí informací o typu umožňuje jednomu sestavení programu pracovat s různými verzemi sady Microsoft Office na různých počítačích, aniž by bylo nutné znovu nasazovat program nebo PIA pro každou verzi sady Microsoft Office.

V tomto návodu provedete následující úkoly:

  • Publikování aplikace na počítači, ve kterém je nainstalována jiná verze systému Microsoft Office.

  • Publikování aplikace na počítači, ve kterém je nainstalována jiná verze systému Microsoft Office.

[!POZNÁMKA]

Na vašem počítači se můžou v následujících pokynech zobrazovat jiné názvy nebo umístění některých prvků uživatelského rozhraní Visual Studia. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení nastavení pro vývoj v sadě Visual Studio.

Požadavky

Tento postup vyžaduje následující:

  • Počítač, ve kterém jsou nainstalovány aplikace Visual Studio a Microsoft Excel.

  • Druhý počítač, na kterém je nainstalováno rozhraní .NET Framework 4 a jiná verze aplikace Excel.

Vytvoření aplikace, která pracuje s více verzemi systému Microsoft Office

  1. Spusťte Visual Studio v počítači, ve kterém je nainstalována aplikace Excel.

  2. V nabídce Soubor zvolte položku Nový, Projekt.

  3. V dialogovém okně Nový projekt v podokně Typy projektů se ujistěte, že je vybrána možnost Windows.Zvolte Aplikace konzoly v panelu Šablony.Do pole Název zadejte CreateExcelWorkbook a poté klikněte na tlačítko OK.Nový projekt je vytvořen.

  4. Pokud používáte Visual Basic, otevřete místní nabídku pro projekt CreateExcelWorkbook a pak zvolte Vlastnosti.Zvolte záložku Odkazy.Klikněte na tlačítko Přidat.Pokud používáte Visual C#, v Průzkumníku řešení otevřete místní nabídku pro složku Odkazy a pak zvolte Přidat odkaz.

  5. Na kartě .NET vyberte nejnovější verzi Microsoft.Office.Interop.Excel.Například Microsoft.Office.Interop.Excel 14.0.0.0.Klikněte na tlačítko OK.

  6. V seznamu odkazů pro projekt CreateExcelWorkbook vyberte odkaz na Microsoft.Office.Interop.Excel, který jste přidali v předchozím kroku.V okně Vlastnosti se ujistěte, že vlastnost Embed Interop Types je nastavena na True.

    [!POZNÁMKA]

    Aplikace vytvořená v tomto návodu bude spuštěna s různými verzemi sady Microsoft Office z důvodu informace o vloženém typu spolupráce.Pokud je vlastnost Embed Interop Types nastavena na False, musíte zahrnout PIA pro každou verzi sady Microsoft Office, na které bude aplikace spuštěna.

  7. Pokud používáte Visual Basic, otevřete soubor Module1.vb.Pokud používáte Visual C#, otevřete soubor Program.cs.Nahraďte kód v souboru následujícím kódem.

    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. Uložte projekt.

  9. Stisknutím kláves CTRL+F5 sestavte a spusťte projekt.Ověřte, zda byl vytvořen sešit aplikace Excel v umístění zadaném v příkladu kódu: C:\SampleFolder\SampleWorkbook.xls.

Publikování aplikace na počítači, ve kterém je nainstalována jiná verze systému Microsoft Office

  1. V Visual Studio otevřete projekt vytvořený v rámci tohoto návodu.

  2. V nabídce Sestavení zvolte Publikovat CreateExcelWorkbook.Instalovatelnou verzi aplikace vytvoříte podle pokynů v Průvodci publikováním.Další informace naleznete v tématu Průvodce publikováním (vývoj pro Office v sadě Visual Studio).

  3. Nainstalujte aplikaci v počítači, na kterém je nainstalováno rozhraní .NET Framework 4 a různé verze aplikace Excel.

  4. Po dokončení instalace spusťte nainstalovaný program.

  5. Ověřte, zda byl vytvořen sešit aplikace Excel v umístění zadaném ve vzorovém kódu: C:\SampleFolder\SampleWorkbook.xls.

Viz také

Úkoly

Návod: Vložení typů ze spravovaných sestavení (C# and Visual Basic)

Referenční dokumentace

/link (Visual Basic)

/link (Možnosti kompilátoru C#)