Passo a passo: Incorporação de informações de tipo de módulos (assemblies) Microsoft Office (C# e Visual Basic)
Se você inserir informações tipo em um aplicativo que faz referência a objetos COM, você pode eliminar a necessidade para um assembly de interoperabilidade primária (PIA).Além disso, as informações inserida de tipo permite que você obtenha a independência de versão para seu aplicativo.Isto é, o programa pode ser escrito para os tipos de uso de várias versões de uma biblioteca COM sem exigir um PIA específico para cada versão.Este é um cenário comum para aplicativos que usam objetos das bibliotecas Microsoft Office.Inserir informações de tipo permite a mesma versão de um programa para trabalhar com versões diferentes do Microsoft Office em computadores diferentes sem a necessidade de reimplantar o programa ou o PIA para cada versão do Microsoft Office.
Nessa explicação passo a passo, você executará as seguintes tarefas:
Para criar um aplicativo que funciona com várias versões do Microsoft Office.
Para publicar o aplicativo em um computador no qual uma versão diferente do Microsoft Office é instalado.
Observação |
---|
Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações de Visual Studio. |
Pré-requisitos
Essa explicação passo a passo requer o seguinte:
Um computador no qual Visual Studio e Microsoft Excel são instalados.
Um segundo computador no qual o .NET Framework 4 e uma versão diferente do excel são instalados.
Para criar um aplicativo que funciona com várias versões do Microsoft Office
Início Visual Studio em um computador no qual o excel está instalado.
No menu de Arquivo , escolha Novo, Projeto.
Na caixa de diálogo de Novo Projeto , no painel de Tipos de projeto , certifique-se que está selecionado Janelas .Aplicativo de Console selecione no painel de Modelos .Na caixa de Nome , entre em CreateExcelWorkbook, e então escolha o botão de OK .O novo projeto é criado.
Se você estiver usando Visual Basic, abra o menu de atalho para o projeto de CreateExcelWorkbook e escolha Propriedades.Escolha a guia de Referências .Escolha o botão Adicionar.Se você estiver usando Visual C#, em Gerenciador de Soluções, abra o menu de atalho para a pasta de Referências e escolha Adicionar Referência.
Na guia do .NET , escolha a versão mais recente de Microsoft.Office.Interop.Excel.Por exemplo, Microsoft.Office.Interop.Excel 14.0.0.0.Escolha o botão OK.
Na lista de referências para o projeto de CreateExcelWorkbook, selecione a referência para Microsoft.Office.Interop.Excel que você adicionou na etapa anterior.Na janela de Propriedades , certifique-se de que a propriedade de Embed Interop Types é definida como True.
Observação O aplicativo criado nessa explicação passo a passo é executado com versões diferentes do Microsoft Office devido às informações de tipo de interoperabilidade inserido.Se a propriedade de Embed Interop Types é definida como False, você deve incluir um PIA para cada versão do Microsoft Office qual o aplicativo será executado com.
Se você estiver usando Visual Basic, abra o arquivo Module1.vb.Se você estiver usando Visual C#, abra o arquivo de Module.vb.Substitua o código no arquivo pelo código a seguir.
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; } } } }
Salvar o projeto.
Pressione CTRL+F5 para compilar e executar o projeto.Verifique se uma pasta de trabalho do Excel foi criado no local especificado no código de exemplo: C:\SampleFolder\SampleWorkbook.xls.
Para publicar o aplicativo em um computador no qual uma versão diferente do Microsoft Office é instalado
Abra o projeto criado por essa explicação passo a passo sobre Visual Studio.
No menu, escolha Compilar de Publicar CreateExcelWorkbook.Siga as etapas do assistente de publicação para criar uma versão instalável do aplicativo.Para obter mais informações, consulte Publicar Assistente (desenvolvimento do Office em Visual Studio).
Instale o aplicativo em um computador no qual o .NET Framework 4 e uma versão diferente do excel são instalados.
Quando a instalação estiver concluída, execute o programa instalado.
Verifique se uma pasta de trabalho do Excel foi criado no local especificado no código de exemplo: C:\SampleFolder\SampleWorkbook.xls.
Consulte também
Tarefas
Passo a passo: Incorporação de tipos a partir de Assemblies gerenciados (C# e Visual Basic)