如何:向工作表添加 ListObject 控件
在文档级项目中,可以在设计时和运行时向 Microsoft Office Excel 工作表添加 ListObject 控件。
**适用于:**本主题中的信息适用于 Excel 2007 和 Excel 2010 的文档级项目和应用程序级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能。
在应用程序级外接程序项目中,还可以在运行时添加 ListObject 控件。
本主题介绍了以下任务:
在设计时添加 ListObject 控件
在运行时在文档级项目中添加 ListObject 控件
在运行时在应用程序级项目中添加 ListObject 控件
有关 ListObject 控件的更多信息,请参见 ListObject 控件。
在设计时添加 ListObject 控件
有多种方法可用来在设计时在文档级项目中向工作表添加 ListObject 控件:从 Excel 内添加,从 Visual Studio 的**“工具箱”中添加,以及从“数据源”**窗口中添加。
提示
对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置。
使用 Excel 中的功能区
在**“插入”选项卡上的“表”组中,单击“表”**。
选择要在列表中包含的一个或多个单元格,然后单击**“确定”**。
使用“工具箱”
从**“工具箱”的“Excel 控件”**选项卡中,将 ListObject 拖到工作表上。
随即出现**“添加 ListObject 控件”**对话框。
选择要在列表中包含的一个或多个单元格,然后单击**“确定”**。
如果不想保留默认名称,可以在**“属性”**窗口中更改名称。
使用“数据源”窗口
打开**“数据源”**窗口,为项目创建一个数据源。 有关更多信息,请参见如何:连接到数据库中的数据。
从**“数据源”**窗口中将一个表拖到工作表中。
一个绑定到数据的 ListObject 控件即被添加到工作表中。 有关更多信息,请参见数据绑定和 Windows 窗体。
在运行时在文档级项目中添加 ListObject 控件
可以在运行时动态地添加 ListObject 控件。 这使您能够为响应事件而创建宿主控件。 关闭工作表时,动态创建的列表对象不会像宿主控件一样保留在工作表中。 有关更多信息,请参见在运行时向 Office 文档添加控件。
以编程方式将 ListObject 控件添加到工作表中
在 Sheet1 的 Startup 事件处理程序中,插入下列代码,以向单元格**“A1”到“A4”**中添加 ListObject 控件。
Dim employeeData As Microsoft.Office.Tools.Excel.ListObject employeeData = Me.Controls.AddListObject(Me.Range("$A$1:$D$4"), "employees")
Microsoft.Office.Tools.Excel.ListObject employeeData; employeeData = this.Controls.AddListObject(this.get_Range("$A$1:$D$4", missing), "employees");
在运行时在应用程序级项目中添加 ListObject 控件
您可以以编程方式在应用程序级项目中向任何打开的工作表添加 ListObject 控件。 保存并关闭工作表时,动态创建的列表对象不会像宿主控件一样保留在工作表中。 有关更多信息,请参见在运行时在应用程序级外接程序中扩展 Word 文档和 Excel 工作簿。
以编程方式将 ListObject 控件添加到工作表中
下面的代码生成一个基于打开的工作表的工作表宿主项,然后向**“A1”到“A4”**单元格添加一个 ListObject 控件。
Private Sub AddListObject() Dim NativeWorksheet As Microsoft.Office.Interop.Excel.Worksheet = Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets(1) ' Use the following line of code in projects that target the .NET Framework 4. Dim worksheet As Microsoft.Office.Tools.Excel.Worksheet = Globals.Factory.GetVstoObject(NativeWorksheet) ' In projects that target the .NET Framework 3.5, use the following line of code. ' Dim worksheet = CType(Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets(1), _ ' Excel.Worksheet).GetVstoObject() Dim list1 As Microsoft.Office.Tools.Excel.ListObject Dim cell As Excel.Range = worksheet.Range("$A$1:$D$4") list1 = worksheet.Controls.AddListObject(cell, "MyListObject") End Sub
private void AddListObject() { // Use the following line of code in projects that target the .NET Framework 4. Worksheet worksheet = Globals.Factory.GetVstoObject( Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets[1]); // In projects that target the .NET Framework 3.5, use the following line of code. // Worksheet worksheet = // ((Excel.Worksheet)Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets[1]).GetVstoObject(); Microsoft.Office.Tools.Excel.ListObject list1; Excel.Range cell = worksheet.Range["$A$1:$D$4", missing]; list1 = worksheet.Controls.AddListObject(cell, "list1"); }
请参见
任务
概念
在运行时在应用程序级外接程序中扩展 Word 文档和 Excel 工作簿