如何使用 Visual C# .NET 处理 Excel 事件
概要
本文分步介绍了如何从使用 Visual C# .NET 开发的自动化客户端处理 Microsoft Excel 事件。
如果没有安装用于 Excel 的主互操作程序集 (PIA),则会收到此错误消息。要解决此问题,请按照下列步骤操作:
测试该代码时,您可能会收到以下错误消息:
事件处理概述
Visual C# .NET 使用委派处理来自组件对象模型 (COM) 服务器的事件。委派是 Microsoft Visual Studio .NET 中的一个新概念。对于 COM 事件,委派是一种特殊对象,它侦听来自 COM 服务器的事件,然后将其转发给 Visual C# 函数。要使用委派,必须创建对象的实例,然后将该对象实例添加到要侦听的事件中。每个事件都有一个委派,该委派专门设计用于将 COM 事件(使用本机数据类型)转换为标准 Microsoft .NET 调用(使用托管数据类型)。创建 Visual C# .NET 自动化客户端
要使用委派从使用 Visual C# .NET 开发的自动化客户端处理 Excel 事件,请按照下列步骤操作:1. | 启动 Visual Studio .NET 2002 或 Visual Studio .NET 2003。在“文件”菜单上,单击“新建”,然后单击“项目”。在“Visual C# 项目”下,选择“Windows 应用程序”。将项目命名为 XLEventTest,然后单击“确定”。 默认情况下会创建 Form1。 |
||||||
2. | 添加对“Microsoft Excel 对象库”的引用。为此,请按照下列步骤操作:
|
||||||
3. | 在解决方案资源管理器中,双击“Form1.cs”以在“设计”视图中显示该窗体。 | ||||||
4. | 在“视图”菜单上,单击“工具箱”以显示工具箱,然后向 Form1 中添加一个按钮。将该按钮的“Text”属性更改为启动 Excel。 | ||||||
5. | 双击“启动 Excel”以显示该窗体的“代码”窗口。将以下代码添加到该按钮的 Click 事件处理程序中:
|
||||||
6. | 在靠近文件顶部、另一个 using 语句下方添加以下代码:
|
||||||
7. | 将以下代码添加到 Form1 类中,使其位于步骤 5 中的 Click 事件处理程序的下方:
|
测试代码
1. | 按 Ctrl+Alt+O 以显示“输出”窗口。 |
2. | 按 F5 生成并运行该程序。 |
3. | 在窗体上,单击“启动 Excel”按钮。 程序将启动 Excel,然后创建一个具有三张工作表的工作簿。 |
4. | 向任一张工作表的单元格中添加任意数据。 查看 Visual Studio 中的“输出”窗口,以确认调用了事件处理程序。 |
5. | 退出 Excel,然后关闭窗体以结束调试会话。 |
疑难解答
编译代码时,可能会收到以下编译器错误消息:命名空间已经包含了“Excel”的定义
如果没有安装用于 Excel 的主互操作程序集 (PIA),则会收到此错误消息。要解决此问题,请按照下列步骤操作:
1. | 运行 Microsoft Office 安装程序,然后安装 Excel PIA。在 Office 安装程序中,PIA 显示为 Excel 下的一个组件“.NET 可编程性支持”。 |
2. | 打开您的项目,删除对 Excel 互操作程序集的引用,然后重复本文“创建 Visual C# .NET 自动化客户端”部分中的步骤 2,以正确地引用 PIA。 |
未处理的“System.InvalidCastException”类型的异常出现在 interop.excel.dll 中。
其他信息:不支持此种接口
其他信息:不支持此种接口