本介绍性演练演示如何为 Microsoft Office Excel 创建应用程序级外接程序。 在此类解决方案中创建的功能可供应用程序本身使用,而不管哪些工作簿处于打开状态。
适用于: 本主题中的信息适用于 Excel 的 VSTO 外接程序项目。 有关详细信息,请参阅 Office 应用程序和项目类型提供的功能。
注释
有兴趣开发跨多个平台扩展 Office 体验的解决方案? 查看新的 Office 加载项模型。 与 VSTO 外接程序和解决方案相比,Office 外接程序占用空间较小,可以使用几乎任何 Web 编程技术(如 HTML5、JavaScript、CSS3 和 XML)生成它们。
本演练阐释了以下任务:
- 为 Excel 创建 Excel VSTO 外接程序项目。 
- 编写使用 Excel 对象模型在保存工作簿时向工作簿添加文本的代码。 
- 生成并运行项目以对其进行测试。 
- 清理已完成的项目,以便 VSTO 外接程序不再在开发计算机上自动运行。 - 注释 - 以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 这些元素取决于你所使用的 Visual Studio 版本和你所使用的设置。 有关详细信息,请参阅 个性化设置 IDE。 
先决条件
你需要满足以下条件才能完成本演练:
- 包含 Microsoft Office 开发人员工具的 Visual Studio 版本。 有关详细信息,请参阅 配置计算机以开发 Office 解决方案。 
- Excel 2013 或 Excel 2010 。 
创建项目
在 Visual Studio 中创建新的 Excel VSTO 外接程序项目
- 启动 Visual Studio。 
- 在“ 文件 ”菜单上,指向“ 新建”,然后单击“ 项目”。 
- 在模板窗格中,展开 Visual C# 或 Visual Basic,然后展开 Office/SharePoint。 
- 在展开的 Office/SharePoint 节点下,选择 Office 加载项 节点。 
- 在项目模板列表中,选择 Excel 2010 外接程序 或 Excel 2013 外接程序。 
- 在 “名称 ”框中,键入 FirstExcelAddIn。 
- 单击 “确定” 。 - Visual Studio 将创建 FirstExcelAddIn 项目,并在编辑器中打开 ThisAddIn 代码文件。 
编写代码以向保存的工作簿添加文本
接下来,将代码添加到 ThisAddIn 代码文件。 新代码使用 Excel 的对象模型在活动工作表的第一行中插入样本文本。 活动工作表是用户保存工作簿时打开的工作表。 默认情况下,ThisAddIn 代码文件包含以下生成的代码:
- 类的 - ThisAddIn部分定义。 此类为您的代码提供入口点,并提供对 Excel 对象模型的访问权限。 有关详细信息,请参阅 程序 VSTO 外接程序。该- ThisAddIn类的其余部分在不应修改的隐藏代码文件中定义。
- ThisAddIn_Startup和- ThisAddIn_Shutdown事件处理程序。 当 Excel 加载和卸载 VSTO 外接程序时,将调用这些事件处理程序。 使用这些事件处理程序在加载 VSTO 外接程序时初始化 VSTO 外接程序,并在卸载外接程序时清理其使用的资源。 有关详细信息,请参阅 Office 项目中的事件。
向保存的工作簿添加一行文本
- 在 ThisAddIn 代码文件中,将以下代码添加到 - ThisAddIn类。 新代码为WorkbookBeforeSave事件定义了一个事件处理程序,该事件在保存工作簿时被引发。- 当用户保存工作簿时,事件处理程序会在活动工作表的开头添加新文本。 - void Application_WorkbookBeforeSave(Microsoft.Office.Interop.Excel.Workbook Wb, bool SaveAsUI, ref bool Cancel) { Excel.Worksheet activeWorksheet = ((Excel.Worksheet)Application.ActiveSheet); Excel.Range firstRow = activeWorksheet.get_Range("A1"); firstRow.EntireRow.Insert(Excel.XlInsertShiftDirection.xlShiftDown); Excel.Range newFirstRow = activeWorksheet.get_Range("A1"); newFirstRow.Value2 = "This text was added by using code"; }
- 如果使用 C#,请将以下必需的代码添加到 - ThisAddIn_Startup事件处理程序。 此代码用于将- Application_WorkbookBeforeSave事件处理程序与 WorkbookBeforeSave 事件连接。- this.Application.WorkbookBeforeSave += new Microsoft.Office.Interop.Excel.AppEvents_WorkbookBeforeSaveEventHandler(Application_WorkbookBeforeSave);- 若要在保存工作簿时修改工作簿,前面的代码示例使用以下对象: 
- Application类的- ThisAddIn字段。 该- Application字段返回一个 Application 对象,该对象表示 Excel 的当前实例。
- WorkbookBeforeSave事件的处理程序的 - Wb参数。 参数- Wb是一个 Workbook 对象,表示保存的工作簿。 有关详细信息,请参阅 Excel 对象模型概述。
测试项目
测试该项目
- 按 F5 生成并运行项目。 - 生成项目时,代码将编译为包含在项目的生成输出文件夹中的程序集。 Visual Studio 还创建一组注册表项,使 Excel 能够发现和加载 VSTO 外接程序,并将开发计算机上的安全设置配置为使 VSTO 外接程序能够运行。 有关详细信息,请参阅 生成 Office 解决方案。 
- 在 Excel 中,保存工作簿。 
- 验证是否已将以下文本添加到工作簿。 - 此文本是使用代码添加的。 
- 关闭 Excel。 
清理项目
完成项目开发后,请从开发计算机中删除 VSTO 外接程序程序集、注册表项和安全设置。 否则,每次在开发计算机上打开 Excel 时,VSTO 外接程序将继续运行。
清理开发计算机上的已完成项目
- 在 Visual Studio 的 “生成 ”菜单上,单击“ 清理解决方案”。
后续步骤
创建适用于 Excel 的基本 VSTO 外接程序后,可以详细了解如何从以下主题开发 VSTO 外接程序:
- 可在 VSTO 外接程序中执行的常规编程任务: 对 VSTO 外接程序进行编程。 
- 特定于 Excel VSTO 外接程序的编程任务: Excel 解决方案。 
- 使用 Excel 的对象模型: Excel 对象模型概述。 
- 例如,通过将自定义选项卡添加到功能区或创建自己的自定义任务窗格( Office UI 自定义),自定义 Excel 的用户界面(UI)。 
- 生成和调试 Excel 的 VSTO 外接程序: 生成 Office 解决方案。 
- 为 Excel 部署 VSTO 外接程序: 部署 Office 解决方案。