Compartir a través de


Cómo: Asignar columnas ListObject a datos

Actualización: noviembre 2007

Se aplica a

La información de este tema sólo se aplica a los proyectos y versiones especificados de Visual Studio Tools para Office de Microsoft Office.

Proyectos de nivel de documento

  • Excel 2007

  • Excel 2003

Proyectos de nivel de aplicación

  • Excel 2007

Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto.

Cuando enlace un control ListObject a una tabla DataTable, puede que no desee mostrar todas las columnas de una lista, o que determinadas columnas no estén enlazadas a datos. Puede asignar las columnas que desee que aparezcan en el objeto ListObject cuando llama al método SetDataBinding.

Asignar columnas

Para asignar una tabla de datos a las columnas de una lista

  1. Cree una tabla DataTable en el nivel de clase.

    Dim table As System.Data.DataTable = New System.Data.DataTable("Employees")
    
    System.Data.DataTable table = new System.Data.DataTable("Employees");
    
  2. Agregue columnas de ejemplo y datos en el controlador de eventos Startup de la clase Sheet1 (en un proyecto en el nivel del documento) o la clase ThisAddIn (en un proyecto en el nivel de la aplicación).

    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. Llame al método SetDataBinding y pase los nombres de las columnas en el orden en que deben aparecer. El objeto de lista se enlazará al objeto DataTable recién creado, pero el orden de las columnas del objeto de lista diferirá del orden en que aparecen en DataTable.

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

Especificar columnas no asignadas

Al asignar columnas a DataTable, también se puede especificar que algunas columnas no se deben enlazar a datos pasando una cadena vacía. En ese caso, se agrega al control ListObject una nueva columna no enlazada a datos.

Para especificar una columna no asignada al asignar las columnas de ListObject

  • Llame al método SetDataBinding y pase los nombres de las columnas en el orden en que deben aparecer. Utilice 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 columna de apellido.

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

Compilar el código

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

Vea también

Tareas

Cómo: Rellenar los controles ListObject con datos

Conceptos

Ampliar documentos de Word y libros de Excel en complementos en el nivel de la aplicación en tiempo de ejecución

Desarrollo de complementos de nivel de aplicación de Excel

Agregar controles a documentos de Office en tiempo de ejecución

ListObject (Control)

Comprender la persistencia del orden de filas y columnas ListObject

Otros recursos

Controles en documentos de Office

Controles Host de Excel