Condividi tramite


Eseguire il mapping delle colonne ListObject ai dati

Quando si associa un controllo ListObject a un oggetto DataTable, è possibile che non si voglia visualizzare tutte le colonne in un elenco o che alcune colonne non siano associate a dati. È possibile mappare le colonne da visualizzare nel ListObject quando si chiama il metodo SetDataBinding .

Si applica a: le informazioni contenute in questo argomento si applicano ai progetti a livello di documento e ai progetti di componente aggiuntivo VSTO per Excel. Per altre informazioni, vedere Funzionalità disponibili per app Office lication e tipo di progetto.

Mappare colonne

Per mappare una tabella dati alle colonne in un elenco

  1. Creare l'oggetto DataTable a livello di classe.

    System.Data.DataTable table = new System.Data.DataTable("Employees");
    
  2. Aggiungere colonne di esempio e dati nel Startup gestore eventi della Sheet1 classe (in un progetto a livello di documento) o ThisAddIn classe (in un progetto di componente aggiuntivo 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. Chiamare il metodo SetDataBinding e passare i nomi delle colonne nell'ordine in cui dovrebbero essere visualizzate. L'oggetto elenco verrà associato all'oggetto appena creato DataTable, ma l'ordine delle colonne nell'oggetto elenco sarà diverso dall'ordine in cui vengono visualizzate in DataTable.

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

Specificare le colonne non mappate

Quando si mappano le colonne a un oggetto DataTable, si può anche specificare che alcune colonne non devono essere associate a dati passando una stringa vuota. Viene quindi aggiunta una nuova colonna non associata a dati al controllo ListObject .

Per specificare una colonna non mappata durante il mapping delle colonne ListObject

  1. Chiamare il metodo SetDataBinding e passare i nomi delle colonne nell'ordine in cui dovrebbero essere visualizzate. Usare una stringa vuota per indicare dove viene aggiunta una colonna non mappata, in questo caso tra la colonna del titolo e la colonna del cognome.

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

Compilare il codice

Questo esempio di codice presuppone che nel foglio di lavoro in cui appare il codice sia già presente un controllo ListObject denominato list1 .