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.
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
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");
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");
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
Agregar controles a documentos de Office en tiempo de ejecución
Automatizar Excel usando objetos extendidos