Como: Mapear as colunas de ListObject para dados

Quando você vincula um ListObject o controle para um DataTable, talvez você não queira exibir todas as colunas em uma lista, ou talvez você tenha determinadas colunas que não estão ligadas a dados. Você pode mapear as colunas que você deseja que apareça na ListObject ao chamar o SetDataBinding método.

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

link para vídeo Para uma demonstração de vídeo relacionada, consulte Fazer como i: Criar uma lista no Excel que esteja conectado a uma lista do SharePoint?.

Mapeamento de colunas

Para mapear de uma tabela de dados para colunas em uma lista

  1. Criar o DataTable no nível da classe.

    Dim table As System.Data.DataTable = New System.Data.DataTable("Employees")
    
    System.Data.DataTable table = new System.Data.DataTable("Employees");
    
  2. Adicionar colunas de exemplo e os dados a Startup manipulador de eventos da Sheet1 classe (um projeto de nível de documento) ou ThisAddIn classe a (em um projeto de nível de aplicativo).

    table.Columns.Add("Id", GetType(Int32))
    table.Columns.Add("FirstName", GetType(String))
    table.Columns.Add("LastName", GetType(String))
    table.Columns.Add("Title", GetType(String))
    
    table.Rows.Add(1, "Nancy", "Anderson", "Sales Representative")
    table.Rows.Add(2, "Robert", "Brown", "Sales Representative")
    
    table.Columns.Add("Id", typeof(int));
    table.Columns.Add("FirstName", typeof(string));
    table.Columns.Add("LastName", typeof(string));
    table.Columns.Add("Title", typeof(string));
    
    table.Rows.Add(1, "Nancy", "Anderson", "Sales Representative");
    table.Rows.Add(2, "Robert", "Brown", "Sales Representative");
    
  3. Chamar o SetDataBinding método e passar os nomes de coluna na ordem em que elas devem aparecer. O objeto da lista será ligado ao recém-criado DataTable, mas a ordem das colunas no objeto da lista será diferente da ordem em que aparecem na DataTable.

    Me.List1.AutoSetDataBoundColumnHeaders = True
    Me.List1.SetDataBinding(table, "", "Title", "LastName", "FirstName")
    
    this.list1.AutoSetDataBoundColumnHeaders = true;
    this.list1.SetDataBinding(table, "", "Title", "LastName", "FirstName");
    

Especificar colunas não mapeadas

Quando você mapeia colunas para um DataTable, você também pode especificar que determinadas colunas não devem ser ligadas a dados, passando uma seqüência de caracteres vazia. Uma nova coluna que não está vinculada a dados é então adicionada para o ListObject de controle.

Para especificar uma coluna não mapeada ao mapear as colunas de ListObject

  • Chamar o SetDataBinding método e passar os nomes de coluna na ordem em que elas devem aparecer. Usar uma seqüência vazia para indicar onde será adicionada uma coluna não mapeada; Nesse caso, entre a coluna de título e a última coluna de nome.

    Me.List1.SetDataBinding(table, "", "Title", "", "LastName", "FirstName")
    
    this.list1.SetDataBinding(table, "", "Title", "", "LastName", "FirstName");
    

Compilando o código

Este exemplo de código assume que existe um ListObject chamado list1 na planilha na qual esse código aparece.

Consulte também

Tarefas

Como: Controles de ListObject preenchimento com dados

Conceitos

Estendendo os documentos do Word e pastas de trabalho do Excel em suplementos de nível de aplicativo em tempo de execução

Adicionar controles a documentos do Office em tempo de execução

Automatizar o Excel usando o Extended objetos

Controle de ListObject

Outros recursos

Controles em documentos do Office