Partilhar via


Passo a passo: Ligação de dados complexa em um projeto de nível de aplicativo

Você pode associar dados a controles do host e de formulários do Windows em projetos de aplicativo.Essa explicação passo a passo demonstra como adicionar controles a uma planilha do Microsoft Office Excel e associar em tempo de execução os controles a dados.

Aplicável a: As informações neste tópico se aplicam a projetos de nível de aplicativo para Excel 2013 e Excel 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

Essa explicação passo a passo mostra as seguintes tarefas:

  • Adicionando um controle de ListObject a uma planilha em tempo de execução.

  • Criando BindingSource que conecta o controle a uma instância de um dataset.

ObservaçãoObservaçã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

Para completar este passo-a-passo, são necessários os seguintes componentes:

-

Uma edição do Visual Studio 2012 que inclui o Microsoft Office Developer Tools. Para obter mais informações, consulte [Configurando um computador para desenvolver soluções do Office](bb398242\(v=vs.110\).md).

Criando um novo projeto

A primeira etapa é criar um projeto do suplemento do excel.

Para criar um novo projeto

  • Crie um projeto do suplemento com o nome do excel que preenche planilhas de um banco de dados, usando Visual Basic ou C#.

    Para obter mais informações, consulte Como: criar projetos do Office em Visual Studio.

    O Visual Studio abre o arquivo de ThisAddIn.vb ou de ThisAddIn.cs e adiciona as planilhas preenchendo de um projeto do banco de dados a Gerenciador de Soluções.

Criando uma Fonte de Dados

Use a janela de Fontes de Dados para adicionar um dataset tipado ao seu projeto.

Para adicionar um dataset tipado ao projeto

  1. Se a janela de Fontes de Dados não estiver visível, exibi-la por, na barra de menus, escolhendo Modo de Visualização, Outras Janelas, Fontes de Dados.

  2. Escolha Adicionar Nova Fonte de Dados para iniciar Assistente para Configuração de Fonte de Dados.

  3. Clique em Banco de Dados, e clique em Avançar.

  4. Se você tiver uma conexão existente para o banco de dados de AdventureWorksLT , escolha esses conexão e clique Avançar.

    Se não, clique Nova Conexão, e use a caixa de diálogo de Adicionar Conexão para criar uma nova conexão.Para obter mais informações, consulte Como: conectar-se a dados em um banco de dados..

  5. Na página de Salvar a Cadeia de Conexão no Arquivo de Configuração do Aplicativo , clique Avançar.

  6. Na página de Escolher Objetos do Banco de Dados , expanda e selecione TabelasEndereço (SalesLT).

  7. Clique em Concluir.

    O arquivo de AdventureWorksLTDataSet.xsd é adicionado a Gerenciador de Soluções.Esse arquivo define os seguintes itens:

    • Um conjunto de dados tipado chamado AdventureWorksLTDataSet.Este dataset representa o conteúdo da tabela de Endereçar (SalesLT) no banco de dados AdventureWorksLT.

    • TableAdapterAddressTableAdapterchamado.Este TableAdapter pode ser usado para ler e gravar dados em AdventureWorksLTDataSet.Para obter mais informações, consulte Visão geral do TableAdapter.

    Você usará ambos esses objetos posteriormente neste passo-a-passo.

Criando controles e controles de associação a dados

Para essa explicação passo a passo, o controle de ListObject exibe todos os dados na tabela que você selecionou assim que o usuário abrisse a pasta de trabalho.O objeto de lista BindingSource usa o controle para se conectar ao banco de dados.

Para obter mais informações sobre associar controles a dados, consulte A ligação de dados a controles em soluções do Office.

Para adicionar o objeto da lista de, o dataset, e o adaptador da tabela

  1. Na classe de ThisAddIn , declare os seguintes controles para exibir a tabela de Address dataset AdventureWorksLTDataSet .

    Private addressListObject As Microsoft.Office.Tools.Excel.ListObject
    Private adventureWorksDataSet As AdventureWorksLTDataSet
    Private addressTableAdapter As AdventureWorksLTDataSetTableAdapters.AddressTableAdapter
    Private addressBindingSource As System.Windows.Forms.BindingSource
    
    private Microsoft.Office.Tools.Excel.ListObject addressListObject;
    private AdventureWorksLTDataSet adventureWorksDataSet;
    private AdventureWorksLTDataSetTableAdapters.AddressTableAdapter addressTableAdapter;
    private System.Windows.Forms.BindingSource addressBindingSource;
    
  2. No método de ThisAddIn_Startup , adicione o seguinte código para inicializar o conjunto de dados e preencher o dataset com informações do conjunto de dados de AdventureWorksLTDataSet .

    Me.addressTableAdapter = New AdventureWorksLTDataSetTableAdapters.AddressTableAdapter()
    Me.adventureWorksDataSet = New AdventureWorksLTDataSet()
    Me.addressTableAdapter.Fill(Me.adventureWorksDataSet.Address)
    Me.addressBindingSource = New System.Windows.Forms.BindingSource()
    
    this.addressTableAdapter = new AdventureWorksLTDataSetTableAdapters.AddressTableAdapter();
    this.adventureWorksDataSet = new AdventureWorksLTDataSet();
    this.addressTableAdapter.Fill(this.adventureWorksDataSet.Address);
    this.addressBindingSource = new System.Windows.Forms.BindingSource();
    
  3. Adicione o seguinte código ao método ThisAddIn_Startup.Isso gera um item host que estende a planilha.Para obter mais informações, consulte Estendendo os documentos do Word e pastas de trabalho do Excel em suplementos de nível de aplicativo em tempo de execução.

            Dim worksheet As Excel.Worksheet = DirectCast(Me.Application.ActiveWorkbook.Worksheets(1), Excel.Worksheet)
    
            ' Create a workhseet host item.
            Dim extendedWorksheet As Worksheet = Globals.Factory.GetVstoObject(worksheet)
    
    
                Excel.Worksheet worksheet = (Excel.Worksheet)this.Application.ActiveWorkbook.Worksheets[1];
                // Create a workhseet host item.
                Worksheet extendedWorksheet = Globals.Factory.GetVstoObject(worksheet);
    
    
    
  4. Crie um intervalo e adicionar o controle de ListObject .

    Dim cell As Excel.Range = extendedWorksheet.Range("$A$1:$G$5", System.Type.Missing)
    Me.addressListObject = extendedWorksheet.Controls.AddListObject(cell, "list1")
    
    Excel.Range cell = extendedWorksheet.Range["$A$1:$G$5"];
    this.addressListObject = extendedWorksheet.Controls.AddListObject(cell, "list1");
    
  5. Associar o objeto da lista AdventureWorksLTDataSet usando BindingSource.Passe em nomes das colunas que você deseja associar ao objeto da lista.

    Me.addressBindingSource.DataSource = Me.adventureWorksDataSet.Address
    Me.addressListObject.AutoSetDataBoundColumnHeaders = True
    Me.addressListObject.SetDataBinding( _
        Me.addressBindingSource, "", "AddressID", "AddressLine1", _
        "AddressLine2", "City", "StateProvince", "CountryRegion", "PostalCode")
    
    this.addressBindingSource.DataSource = this.adventureWorksDataSet.Address;
    this.addressListObject.AutoSetDataBoundColumnHeaders = true;
    this.addressListObject.SetDataBinding(
        this.addressBindingSource, "", "AddressID", "AddressLine1", 
        "AddressLine2", "City", "StateProvince", "CountryRegion", "PostalCode");
    

Testando o suplemento

Quando você abre o excel, o controle de ListObject exibe os dados da tabela de Address dataset AdventureWorksLTDataSet .

Para testar o suplemento

  • Pressione F5.

    Um controle de ListObject chamado addressListObject é criado na planilha.Ao mesmo tempo, um objeto de dataset chamado adventureWorksLTDataSet e BindingSource chamado addressBindingSource é adicionado ao projeto.ListObject é associado a BindingSource, que por sua vez é associado ao objeto de dataset.

Consulte também

Tarefas

Como: preencher as planilhas com dados de um banco de dados.

Como: preencher documentos com dados de um banco de dados.

Como: preencher documentos com dados de serviços

Como: preencher documentos com dados de objetos

Como: rolar pelos registros de banco de dados em uma planilha

Como: atualizar uma fonte de dados com dados de um controle de Host

Passo a passo: Ligação de dados simples em um projeto de nível de documento

Passo a passo: Ligação de dados complexa em um projeto de nível de documento

Referência

Visão geral sobre o componente BindingSource

Conceitos

Usando arquivos de banco de dados Local na visão geral das soluções do Office

Visão geral sobre fontes de dados

Vinculando controles do Windows Forms a dados em Visual Studio

Usando arquivos de banco de dados Local na visão geral das soluções do Office

Conectando a dados em aplicativos Windows Forms

Outros recursos

Data in Office Solutions

A ligação de dados a controles em soluções do Office