如何:将 ListObject 列映射到数据
在将 ListObject 控件绑定到 DataTable 时,您可能不希望显示列表中的所有列,或可能只想显示某些未绑定数据的列。 可以映射在调用 SetDataBinding 方法时希望在 ListObject 中出现的列。
**适用于:**本主题中的信息适用于 Excel 2007 和 Excel 2010 的文档级项目和应用程序级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能。
有关相关视频演示,请参见 How Do I: Create a List in Excel that is Connected to a SharePoint List?(如何实现:在 Excel 中创建连接到 SharePoint 列表的列表?)。
映射列
将数据表映射到列表中的列
在类级别创建 DataTable。
Dim table As System.Data.DataTable = New System.Data.DataTable("Employees")
System.Data.DataTable table = new System.Data.DataTable("Employees");
在 Sheet1 类(在文档级项目中)或 ThisAddIn 类(在应用程序级项目中)的 Startup 事件处理程序中添加示例列和数据。
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");
调用 SetDataBinding 方法,并按其显示顺序传入列名。 列表对象将被绑定到新创建的 DataTable,但列表对象中的列顺序与列在 DataTable 中的显示顺序不同。
Me.List1.AutoSetDataBoundColumnHeaders = True Me.List1.SetDataBinding(table, "", "Title", "LastName", "FirstName")
this.list1.AutoSetDataBoundColumnHeaders = true; this.list1.SetDataBinding(table, "", "Title", "LastName", "FirstName");
指定未映射的列
将列映射到 DataTable 时,还可以指定不应绑定到数据的一些列,方法是传入空字符串。 然后,未绑定到数据的新列被添加到 ListObject 控件。
在映射 ListObject 列时指定未映射的列
调用 SetDataBinding 方法,并按其显示顺序传入列名。 使用空字符串指示未映射列的添加位置;此例中是标题列和姓氏列之间。
Me.List1.SetDataBinding(table, "", "Title", "", "LastName", "FirstName")
this.list1.SetDataBinding(table, "", "Title", "", "LastName", "FirstName");
编译代码
此代码示例假定在出现此代码的工作表中有一个名为 list1 的现有 ListObject。
请参见
任务
概念
在运行时在应用程序级外接程序中扩展 Word 文档和 Excel 工作簿