Partilhar via


Mapear colunas ListObject para dados

Quando você vincula um controle a um ListObject DataTable, talvez não queira exibir todas as colunas em uma lista ou pode ter determinadas colunas que não estão vinculadas a dados. Você pode mapear quais colunas deseja que apareçam no ListObject método quando você chama o SetDataBinding método.

Aplica-se a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de suplemento VSTO para Excel. Para obter mais informações, consulte Recursos disponíveis por aplicativo e tipo de projeto do Office.

Mapear colunas

Para mapear uma tabela de dados para colunas em uma lista

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

    System.Data.DataTable table = new System.Data.DataTable("Employees");
    
  2. Adicione colunas de exemplo e dados no Startup manipulador de eventos da classe (em um projeto de nível de documento) ou ThisAddIn classe (em um projeto de Sheet1 suplemento VSTO).

    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. Chame o SetDataBinding método e passe os nomes das colunas na ordem em que devem aparecer. O objeto de lista será vinculado ao recém-criado DataTable, mas a ordem das colunas no objeto de lista será diferente da ordem em que aparecem no DataTable.

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

Especificar colunas não mapeadas

Ao mapear colunas para um DataTable, você também pode especificar que determinadas colunas não devem ser vinculadas a dados passando uma cadeia de caracteres vazia. Uma nova coluna que não está vinculada a dados é adicionada ListObject ao controle.

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

  1. Chame o SetDataBinding método e passe os nomes das colunas na ordem em que devem aparecer. Use uma cadeia de caracteres vazia para indicar onde uma coluna não mapeada é adicionada; nesse caso, entre a coluna de título e a coluna de sobrenome.

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

Compilar o código

Este exemplo de código pressupõe que você tenha um nome list1 existente ListObject na planilha na qual esse código aparece.