Compartir a través de


Asignar columnas ListObject a datos

Al enlazar un control ListObject a un DataTable, puede que no desee mostrar todas las columnas de una lista o puede que tenga algunas columnas que no están enlazadas a datos. Puede asignar las columnas que desea que aparezca en ListObject al llamar al método SetDataBinding .

Se aplica a: La información de este tema se aplica a proyectos de nivel de documento y proyectos de complementos de VSTO para Excel. Para obtener más información, consulte Características disponibles por aplicación de Office lication y tipo de proyecto.

Asignar columnas

Para asignar una tabla de datos a columnas en una lista

  1. Cree la DataTable en el nivel de clase.

    System.Data.DataTable table = new System.Data.DataTable("Employees");
    
  2. Agregue columnas de ejemplo y datos en el Startup controlador de eventos de la Sheet1 clase (en un proyecto de nivel de documento) o ThisAddIn clase (en un proyecto de complemento de 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. Llame al método SetDataBinding y pase los nombres de columna en el orden en que deben aparecer. El objeto list se enlazará al objeto recién creadoDataTable, pero el orden de las columnas del objeto de lista diferirá del orden en que aparecen en .DataTable

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

Especificar columnas no asignadas

Al asignar columnas a un DataTable, también puede especificar que algunas columnas no se enlacen a datos pasando una cadena vacía. A continuación, se agrega al control ListObject una nueva columna que no esté enlazada a datos.

Para especificar una columna no asignada al asignar columnas ListObject

  1. Llame al método SetDataBinding y pase los nombres de columna en el orden en que deben aparecer. Use una cadena vacía para indicar dónde se agrega una columna no asignada; en este caso, entre la columna de título y la última columna de nombre.

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

Compilar el código

Este ejemplo de código supone que dispone de un ListObject existente denominado list1 en la hoja de cálculo en la que aparece este código.