Compartir a través de


Cómo: Asignar columnas ListObject a datos

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.

Se aplica a: la información de este tema se aplica a los proyectos de nivel de documento y los proyectos de nivel de aplicación para Excel 2007 y Excel 2010. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.

vínculo a vídeo Para obtener una demostración de vídeo relacionada, vea How Do I: Create a List in Excel that is Connected to a SharePoint List?.

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

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

Automatizar Excel usando objetos extendidos

ListObject (Control)

Otros recursos

Controles en documentos de Office