演练:将数据绑定到 Excel 操作窗格上的控件

本演练演示Microsoft 办公室 Excel 中操作窗格上的控件的数据绑定。 控件演示 SQL Server 数据库中表之间的主/从关系。

适用于: 本主题中的信息适用于 Excel 的文档级项目。 有关详细信息,请参阅办公室应用程序和项目类型提供的功能。

本演练阐释了以下任务:

  • 向工作表添加控件。

  • 创建操作窗格控件。

  • 向操作窗格控件添加数据绑定Windows 窗体控件。

  • 在应用程序打开时显示操作窗格。

注意

以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 这些元素取决于你所使用的 Visual Studio 版本和你所使用的设置。 有关详细信息,请参阅个性化设置 Visual Studio IDE

先决条件

你需要满足以下条件才能完成本演练:

  • Visual Studio 的一个版本,其中包含 Microsoft Office 开发人员工具。 有关详细信息,请参阅配置计算机以开发办公室解决方案

  • Excel 2013 或 Excel 2010 。

  • 使用 Northwind SQL Server 示例数据库访问服务器。

  • 读取和写入 SQL Server 数据库的权限。

创建项目

第一步是创建一个 Excel 工作簿项目。

创建新项目

  1. 创建名为“我的 Excel 操作”窗格Excel 工作簿项目。 在向导中,选择“ 创建新文档”。 有关详细信息,请参阅“如何:在 Visual Studio 中创建办公室项目。

    Visual Studio 在设计器中打开新的 Excel 工作簿,并将“我的 Excel 操作窗格”项目添加到解决方案资源管理器

向项目添加新数据源

向项目添加新数据源

  1. 如果“数据源”窗口不可见,请通过菜单栏选择“查看>其他 Windows>数据源”来显示它。

  2. 选择 “添加新数据源” 以启动 “数据源配置向导”

  3. 选择“ 数据库 ”,然后单击“ 下一步”。

  4. 选择与 Northwind 示例 SQL Server 数据库的数据连接,或使用“新建连接”按钮添加新连接

  5. 单击 “下一步”

  6. 清除此选项以保存连接(如果已选中),然后单击“ 下一步”。

  7. 展开“数据库对象”窗口中的“表”节点。

  8. 选择“供应商”表旁边的检查框。

  9. 展开“产品”表,然后选择 ProductNameSupplierIDQuantityPerUnitUnitPrice

  10. 单击“完成”。

    向导将 “供应商 ”表和 “产品 ”表添加到 “数据源 ”窗口。 它还将类型化数据集添加到解决方案资源管理器可见的项目。

向工作表添加控件

接下来,将 NamedRange 控件和控件添加到第一个 ListObject 工作表。

添加 NamedRange 控件和 ListObject 控件

  1. 验证 “我的 Excel 操作窗格.xlsx ”工作簿是否在 Visual Studio 设计器中打开,并 Sheet1 显示。

  2. “数据源”窗口中,展开“供应商表。

  3. 单击公司名称节点上的下拉箭头,然后单击 NamedRange

  4. 公司名称从“数据源”窗口拖到单元格 A2Sheet1

    创建名为的NamedRange控件,文本 <CompanyName> 将显示在单元格 A2CompanyNameNamedRange 中。 同时, BindingSource 将命名 suppliersBindingSource表适配器和表 DataSet 适配器添加到项目中。 该控件绑定到 BindingSource该控件,而该控件又绑定到 DataSet 实例。

  5. “数据源”窗口中,向下滚动到“供应商”表下的列。 列表底部是“产品表;此处是“供应商表的子级。 选择此 “产品 ”表,而不是与 “供应商 ”表位于同一级别的表,然后单击显示的下拉箭头。

  6. 单击下拉列表中的 ListObject,然后将 Products 表拖动到单元格 A6Sheet1

    ListObject命名ProductNameListObject的控件在单元格 A6 中创建。 同时, BindingSource 命名 productsBindingSource 适配器和表适配器将添加到项目中。 该控件绑定到 BindingSource该控件,而该控件又绑定到 DataSet 实例。

  7. 对于仅限 C#,请在组件托盘上选择 suppliersBindingSource,并在“属性”窗口中将 Modifiers 属性更改为“内部”。

将控件添加到操作窗格

接下来,需要一个包含组合框的操作窗格控件。

添加操作窗格控件

  1. 解决方案资源管理器中选择“我的 Excel 操作窗格”项目

  2. “项目” 菜单上,单击 “添加新项”

  3. “添加新项 ”对话框中,选择“ 操作窗格控件”,将其命名为 ActionsControl,然后单击“ 添加”。

向操作窗格控件添加数据绑定Windows 窗体控件

  1. 从工具箱“常见控件”选项卡中,将ComboBox控件拖到操作窗格控件。

  2. Size 属性更改为 171、21

  3. 调整用户控件的大小以适应组合框。

将操作窗格上的控件绑定到数据

在本部分中,你将将数据源 ComboBox 设置为与工作表上的控件相同的数据源 NamedRange

设置控件的数据绑定属性

  1. 右键单击操作窗格控件,然后单击“ 查看代码”。

  2. 将以下代码添加到 Load 操作窗格控件的事件。

    private void ActionsControl_Load(object sender, EventArgs e)
    {
        this.comboBox1.DataSource = Globals.Sheet1.suppliersBindingSource;
        this.comboBox1.DisplayMember = "CompanyName";
    }
    
  3. 在 C# 中,必须为 <a0/> 创建事件处理程序。 可以将此代码放置在构造函数中 ActionsControl 。 有关创建事件处理程序的详细信息,请参阅如何:在办公室项目中创建事件处理程序。

    public ActionsControl()
    {
        InitializeComponent();
        this.Load += new EventHandler(ActionsControl_Load);
    }
    

显示操作窗格

在运行时添加控件之前,操作窗格不可见。

显示操作窗格

  1. 解决方案资源管理器中,右键单击 ThisWorkbook.vbThisWorkbook.cs,然后单击“查看代码”。

  2. 在类中创建 ThisWorkbook 用户控件的新实例。

    ActionsControl actions = new ActionsControl();
    
  3. 在 的StartupThisWorkbook事件处理程序中,将控件添加到操作窗格。

    private void ThisWorkbook_Startup(object sender, System.EventArgs e)
    {
        this.ActionsPane.Controls.Add(actions);
    }
    

测试应用程序

现在,可以测试文档,以验证打开文档时操作窗格是否打开,以及控件是否具有大纲/细节关系。

测试文档

  1. F5 运行项目。

  2. 确认操作窗格可见。

  3. 在列表框中选择公司。 验证控件中 NamedRange 是否列出了公司名称,以及控件中 ListObject 是否列出了产品详细信息。

  4. 选择各种公司以根据需要验证公司名称和产品详细信息更改。

后续步骤

以下是接下来可能要执行的一些任务: