演练:创建您的第一个 Excel 文档级自定义项

本介绍性演练演示如何创建 Microsoft Office Excel 的文档级自定义项。在这种类型的解决方案中创建的功能仅在打开了特定的工作簿时才可用。不能使用文档级自定义项进行应用程序范围的更改,例如,在打开任何工作簿时都显示新的功能区选项卡。

**适用于:**本主题中的信息适用于 Excel 2013 和 Excel 2010 的文档级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能

本演练阐释了以下任务:

  • 创建 Excel 工作簿项目。

  • 向 Visual Studio 设计器中承载的工作表添加文本。

  • 编写使用 Excel 的对象模型在自定义的工作簿打开时向其中添加文本的代码。

  • 生成并运行此项目以对它进行测试。

  • 清理已完成的项目以便从开发计算机中移除不必要的生成文件和安全设置。

说明说明

对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置

系统必备

您需要以下组件来完成本演练:

-

Visual Studio 2012 的一个版本,其中包含 Microsoft Office 开发工具。有关更多信息,请参见[将计算机配置为开发 Office 解决方案](bb398242\(v=vs.110\).md)。
  • Excel 2013 或 Excel 2010。

创建项目

在 Visual Studio 中创建新的 Excel 工作簿项目

  1. 启动 Visual Studio。

  2. 在**“文件”菜单上指向“新建”,再单击“项目”**。

  3. 在模板窗格中,展开 visual C#Visual Basic,然后展开 Office/SharePoint

  4. 在展开的 Office/SharePoint 节点下,选择 Office 加载项 节点。

  5. 在项目模板列表中,选择**“Excel 2010 工作簿”“Excel 2013 工作簿”**。

  6. 在**“名称”**框中键入 FirstWorkbookCustomization。

  7. 单击**“确定”**。

    会打开**“Visual Studio Tools for Office 项目向导”**。

  8. 选择**“创建新文档”,然后单击“确定”**。

    • Visual Studio 创建 FirstWorkbookCustomization 项目,并将以下文件添加到该项目。

    • FirstWorkbookCustomization.xlsx - 表示项目中的 Excel 工作簿。包含所有的工作表和图表。

    • Sheet1(对于 Visual Basic 为 .vb 文件,对于 Visual C# 为 .cs 文件)-- 为工作簿中第一个工作表提供设计图面和代码的工作表。有关更多信息,请参见工作表宿主项

    • Sheet2(对于 Visual Basic 为 .vb 文件,对于 Visual C# 为 .cs 文件)-- 为工作簿中第二个工作表提供设计图面和代码的工作表。

    • Sheet3(对于 Visual Basic 为 .vb 文件,对于 Visual C# 为 .cs 文件)-- 为工作簿中第三个工作表提供设计图面和代码的工作表。

    • ThisWorkbook(对于 Visual Basic 为 .vb 文件,对于 Visual C# 为 .cs 文件)-- 包含用于工作簿级自定义项的设计图面和代码。有关更多信息,请参见工作簿宿主项

    Sheet1 代码文件会自动在设计器中打开。

在设计器中关闭并重新打开工作表

如果您在开发项目时在设计器中故意或意外地关闭了工作簿或工作表,可以重新打开它。

在设计器中关闭并重新打开工作表

  1. 单击设计器窗口的**“关闭”**按钮 (X) 关闭工作簿。

  2. 在**“解决方案资源管理器”中,右击“Sheet1”代码文件,然后单击“视图设计器”**。

    - 或 -

    在**“解决方案资源管理器”中双击“Sheet1”**代码文件。

在设计器中向工作表中添加文本

可以通过修改在设计器中打开的工作表来设计自定义项的用户界面 (UI)。例如,可以向单元格添加文本、应用公式或添加 Excel 控件。有关如何使用设计器的更多信息,请参见 Visual Studio 环境中的 Office 项目

使用设计器向工作表中添加文本

  • 在设计器中打开的工作表中,选择单元格**“A1”**,然后键入以下文本。

    This text was added by using the designer.

警告说明警告

如果将此行文本添加到单元格“A2”,则它将被此示例中的其他代码覆盖。

以编程方式向工作表中添加文本

接下来,向 Sheet1 代码文件中添加代码。新的代码使用 Excel 的对象模型向该工作簿中添加第二行文本。默认情况下,Sheet1 代码文件包含所生成的以下代码:

  • Sheet1 类的分部定义,此类表示该工作表的编程模型,并且通过此类可访问 Excel 的对象模型。有关更多信息,请参见工作表宿主项Word 对象模型概述。Sheet1 类的其余部分是在一个隐藏的代码文件中定义的,您不应修改此代码文件。

  • Sheet1_Startup 和 Sheet1_Shutdown 事件处理程序。当 Excel 加载和卸载自定义项时会调用这些事件处理程序。使用这些事件处理程序,可在加载自定义项时对自定义项进行初始化,并在卸载外接程序时清理自定义项所使用的资源。有关更多信息,请参见Office 项目中的事件

使用代码向工作表中添加第二行文本

  1. 在**“解决方案资源管理器”中,右击“Sheet1”,再单击“查看代码”**。

    相应的代码文件即会在 Visual Studio 中打开。

  2. 用下面的代码替换 Sheet1_Startup 事件处理程序。Sheet1 打开后,此代码便会向此工作表中添加第二行文本。

    Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
        Dim nr As Microsoft.Office.Tools.Excel.NamedRange = _
            Me.Controls.AddNamedRange(Me.Range("A2"), "NamedRange1")
        nr.Value2 = "This text was added by using code"
    End Sub
    
    private void Sheet1_Startup(object sender, System.EventArgs e)
    {
        Microsoft.Office.Tools.Excel.NamedRange nr =
            this.Controls.AddNamedRange(this.Range["A2"], "NamedRange1");
        nr.Value2 = "This text was added by using code";
    }
    

测试项目

测试工作簿

  1. 按**“F5”**生成并运行项目。

    生成项目时,代码会编译成一个与此工作簿关联的程序集。Visual Studio 将此工作簿和此程序集的副本放入项目的生成输出文件夹中,并将开发计算机上的安全设置配置为允许自定义项运行。有关更多信息,请参见生成 Office 解决方案

  2. 在此工作簿中,验证是否出现以下文本。

    This text was added by using the designer.

    This text was added by using code.

  3. 关闭工作簿。

清理项目

完成项目的开发后,应移除生成输出文件夹中的文件和生成过程创建的安全设置。

在开发计算机上清理已完成的项目

  • 在 Visual Studio 的**“生成”菜单中,单击“清理解决方案”**。

后续步骤

您已经创建了一个基本的 Excel 文档级自定义项,现在可以从下面这些主题中了解关于如何开发自定义项的更多内容:

请参见

概念

Office 解决方案开发概述

使用扩展对象实现 Excel 自动化

其他资源

Excel 解决方案

对文档级自定义项进行编程

Excel 对象模型概述

Office UI 自定义

生成 Office 解决方案

部署 Office 解决方案

Office 项目模板概述