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.
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
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");
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");
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
Adicionar controles a documentos do Office em tempo de execução
Automatizar o Excel usando o Extended objetos