Пошаговое руководство. Внедрение данных о типе из сборок для приложений Microsoft Office (C# и Visual Basic)

Если в приложение, имеющее ссылки на COM-объекты, внедрены данные о типе, то можно исключить необходимость использования основной сборки взаимодействия (PIA).Кроме того, внедренные данные о типе позволяют создать приложение, не зависящее от версии.Это означает, что в программе можно использовать типы из нескольких версий библиотеки COM, т. е. необходимость использования конкретной основной сборки взаимодействия для каждой версии библиотеки COM отпадает.Это общий сценарий для приложений, использующих объекты из библиотек Microsoft Office.Внедрение данных о типе позволяет одному построению программы работать с разными версиями приложения Microsoft Office на разных компьютерах без необходимости повторного развертывания программы или основной сборки взаимодействия для каждой версии приложения Microsoft Office.

В данном пошаговом руководстве будут выполнены следующие задачи:

  • Создание приложения, работающего с несколькими версиями приложения Microsoft Office.

  • Публикация приложения на компьютере, на котором установлены разные версии приложения Microsoft Office.

ПримечаниеПримечание

На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

Обязательные компоненты

Необходимо выполнить следующие требования.

  • Компьютер, на котором установлен Visual Studio и Microsoft Excel.

  • Второй компьютер, на котором установлен .NET Framework 4 и другая версия Excel.

Создание приложения, работающего с несколькими версиями приложения Microsoft Office

  1. На компьютере с установленным приложением Excel запустите Visual Studio.

  2. В меню Файл выберите Создать, Проект.

  3. Убедитесь, что в диалоговом окне Новый проект в области Типы проектов выбран пункт Windows.В области Шаблоны выберите пункт Консольное приложение.В окне Имя, введите CreateExcelWorkbook, а затем нажмите ОК.Новый проект создан.

  4. При использовании Visual Basic, откройте контекстное меню для проекта CreateExcelWorkbook и выберите пункт Свойства.Перейдите на вкладку Ссылки.Нажмите кнопку Добавить.При использовании Visual C#, в Обозревателе решений откройте контекстное меню для папки Ссылки, а затем выберите Добавить ссылку.

  5. На вкладке .NET щелкните самую последнюю версию сборки взаимодействия Microsoft.Office.Interop.Excel.Например, Microsoft.Office.Interop.Excel 14.0.0.0.Нажмите кнопку ОК.

  6. В списке ссылок для проекта CreateExcelWorkbook выберите ссылку для сборки взаимодействия Microsoft.Office.Interop.Excel, которая была добавлена на предыдущем шаге.Убедитесь, что в окне Свойства свойство Embed Interop Types имеет значение True.

    ПримечаниеПримечание

    Приложение, созданное в ходе данного пошагового руководства, запускается с разными версиями приложения Microsoft Office, поскольку содержит внедренные данные о типе сборки взаимодействия.Если свойство Embed Interop Types имеет значение False, необходимо добавить основную сборку взаимодействия для каждой версии приложения Microsoft Office, с которой будет запускаться приложение.

  7. Если используется Visual Basic, откройте файл Module1.vb.Если используется Visual C#, откройте файл Program.cs.Замените код в файле следующим кодом.

    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. Сохраните проект.

  9. Нажмите сочетание клавиш CTRL+F5, чтобы построить и запустить проект.Убедитесь, что книга Excel создана в расположении, указанном в примере кода: "C:\SampleFolder\SampleWorkbook.xls".

Публикация приложения на компьютере, на котором установлены разные версии приложения Microsoft Office

  1. Откройте проект, созданный в ходе этого пошагового руководства в Visual Studio.

  2. В меню Построение выберите команду Опубликовать CreateExcelWorkbook.Чтобы создать устанавливаемую версию приложения, следуйте указаниям мастера публикации.Для получения дополнительной информации см. Мастер публикации (разработка для Office в Visual Studio).

  3. Установите приложение на компьютере, на котором установлены .NET Framework 4 и другая версия Excel.

  4. После завершения установки запустите установленную программу.

  5. Убедитесь, что книга Excel создана в расположении, указанном в примере кода: "C:\SampleFolder\SampleWorkbook.xls".

См. также

Задачи

Пошаговое руководство. Внедрение данных о типах из управляемых сборок (C# и Visual Basic)

Ссылки

/link (Visual Basic)

/link (параметры компилятора C#)