Wskazówki: osadzanie informacji o typie z zestawów Microsoft Office (C# i Visual Basic)

Jeżeli informacje o typie zostały osadzone w aplikacji, która odwołuje się do obiektów COM, można wyeliminować potrzebę zestawu podstawowej usługi międzyoperacyjnej (PIA).Dodatkowo informacje o typie osadzony pozwalają osiągnąć niezależność twojej aplikacji.Oznacza to, że program może być napisany tak, by używał typów z wielu wersji biblioteki COM bez konieczności określonego PIA dla każdej wersji.Jest to typowy scenariusz dla aplikacji korzystających z obiektów bibliotek Microsoft Office.Osadzanie informacji o typie umożliwia tym samym kompilację programu do pracy z różnymi wersjami pakietu Microsoft Office na różnych komputerach bez konieczności ponownego wdrażania programu lub PIA dla każdej wersji pakietu Microsoft Office.

W tym instruktażu wykonasz następujące zadania:

  • Aby opublikować aplikacje na komputerze, na którym zainstalowana jest inna wersja Microsoft Office.

  • Aby opublikować aplikacje na komputerze, na którym zainstalowana jest inna wersja Microsoft Office.

[!UWAGA]

Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.

Wymagania wstępne

Ten poradnik wymaga poniższego:

  • Komputer, na którym Visual Studio i zainstalowano program Microsoft Excel.

  • Drugi komputerze, na którym są zainstalowane 4.NET Framework i różne wersje programu Excel.

Aby utworzyć aplikację, która działa z wieloma wersjami Microsoft Office

  1. Uruchom Visual Studio na komputerze, na którym zainstalowany jest program Excel.

  2. W pasku menu wybierz Plik, Nowy, Projekt.

  3. W oknie dialogowym Nowy projekt w okienku Typy projektu upewnij się, że zaznaczono Windows.Wybierz Aplikacja konsoli w oknie Szablony.W polu tekstowym Nazwa wprowadź CreateExcelWorkbook, a następnie wybierz przycisk OK.Nowy projekt zostanie utworzony.

  4. Jeśli używasz Visual Basic, otwórz menu skrótów projektu CreateExcelWorkbook, a następnie wybierz Właściwości.Wybierz zakładkę Odwołania.Wybierz przycisk Dodaj.Jeśli używasz Visual C#, w Eksploratorze rozwiązań otwórz menu skrótów foldera Odwołanie, a następnie wybierz polecenie Dodaj odwołanie.

  5. W zakładce .NET wybierz najbardziej aktualną wersję Microsoft.Office.Interop.Excel.Na przykład Microsoft.Office.Interop.Excel 14.0.0.0.Wybierz przycisk OK.

  6. Na liście odniesień do projektu CreateExcelWorkbook zaznacz odwołanie do Microsoft.Office.Interop.Excel, które zostało dodane w poprzednim kroku.W oknie Właściwości okna, upewnij się, że właściwość Embed Interop Types jest ustawiona na True.

    [!UWAGA]

    Aplikacja utworzone w tym instruktażu działa z różnymi wersjami pakietu Microsoft Office dzięki informacji osadzonego typu międzyoperacyjnego.Jeśli właściwość Embed Interop Types jest ustawiona na False, musisz uwzględnić PIA dla każdej wersji pakietu Microsoft Office, z którą aplikacja będzie uruchamiana.

  7. Jeśli używasz Visual Basic, otwórz plik Module1.vb.Jeśli używasz Visual C#, otwórz plik Program.cs.Zatąp kod w pliku z następującym kodem:

    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. Zapisz projekt.

  9. Naciśnij CTRL+F5 aby skompilować i uruchomić projekt.Weryfikuj utworzenie arkusza Excel w lokalizacji określone w przykładowym kodzie: C:\SampleFolder\SampleWorkbook.xls.

Aby opublikować aplikacje na komputerze, na którym zainstalowana jest inna wersja Microsoft Office

  1. Otwórz projekt utworzony w tym instruktażu w Visual Studio.

  2. Z menu Kompilacja wybierz Publikuj CreateExcelWorkbook.Wykonaj kroki Kreatora publikacji, aby utworzyć instalowalną wersję aplikacji.Aby uzyskać więcej informacji, zobacz Kreator publikacji (Office Development w Visual Studio).

  3. Zainstaluj aplikację na komputerze, na którym są zainstalowane 4.NET Framework i różne wersje programu Excel.

  4. Po ukończeniu instalacji, uruchom zainstalowany program.

  5. Weryfikuj utworzenie arkusza Excel w lokalizacji określone w przykładowym kodzie: C:\SampleFolder\SampleWorkbook.xls.

Zobacz też

Zadania

Wskazówki: osadzanie typów z zarządzanych zestawów (C# i Visual Basic)

Informacje

/link (Visual Basic)

/link (opcje kompilatora C#)