演练:在Excel中拦截事件

类别:.NET开发 点击:0 评论:0 推荐:

演练:在Excel中拦截事件

 

Ken Getz

MCW Technologies

September 2003

Applies to:

    Microsoft® Visual Studio® Tools for the Microsoft Office System

    Microsoft Office Excel 2003

Microsoft Visual Studio .NET 2003

概述:微软的Visual Studio Toos很容易就能把微软的Excel 2003调用的事件整合在托管代码中。本演练示范了ExcelApplication对象调用的SheetFollowHyperlink事件的响应。

内容

介绍

必要条件

开始

处理文档

处理事件

增加事件代码并测试

结论

 

介绍

这篇演练中你将使用Visual Studio .NET提供的工具和Office SystemVisual Studio工具建立一篇新的Excel 2003文档。你将增加代码来响应ExcelApplication对象中的SheetFollowHyperlink事件,当你点击此链接时建立新的工作表。

 

必要条件

为完成本次演练,下列软件和组件必须安装在计算机上:

    Microsoft Visual Studio .NET 2003 or Microsoft Visual Basic® .NET Standard 2003

    Microsoft Visual Studio Tools for the Microsoft Office System

    Microsoft Office Professional Edition 2003

 

开始

为了开始,你需要建立一个与Office Excel 2003协作的Visual Studio .NET项目。

建立一个Excel工作簿项目

1.       开始Visual Studio .NET,点击文件菜单,指向新建,接着点击项目。

2.       在项目类型面板中,扩展微软Office System项目,选择Visual Basic项目或者是Visual C 项目。

3.       在模板面板中,选择Excel工作簿。

4.       命名为ExcelEvent,接着存储在当地硬盘中。

5.       接受微软Office项目向导的缺省值,点击完成建立新的Excel工作簿项目。

Visual Studio .NET在代码编辑器中为你打开ThisDocument.vb或者是ThisDocument.cs文件。

向导使用两个文件存储解决方案:

Ø       AssemblyInfo.vb或者是AssemblyInfo.cs存储汇编级元数据。

Ø       ThisWorkbook.vb或者是ThisWorkbook.cs保存响应Excel事件的代码。

处理文档

为了示范SheetFollowHyperlink事件并建立新的工作簿,你需要在此工作簿中增加新的超级链接,按以下步骤操作:

在此文档中增加超级链接

1.       F5运行项目,装入Excel和新的工作簿。

2.       Excel中,将光标放在A1单元格,选择插入菜单中的超级链接。

3.       打开插入超级链接对话框,点击左边面板中的链接到,选择放置在本文挡。

4.       设置显示文本值为建立新的工作簿。

5.       确保单元格引用和你的超级链接的位置相匹配,当你做完之后,对话框如图一所示:

图一:完成后的插入超级链接对话框

6.       点击OK关闭对话框,你将看到在工作簿中新建的超级链接。

7.       选择文件菜单中的保存来保存工作簿。

8.       关闭Excel返回到Visual Studio .NET

处理事件

Visual Studio .NET建立的OfficeCodeBehind类允许你简单的增加代码到现存的程序中就可以处理文档的OpenBeforeClose事件。在本次练习中,你将写代码来响应事件模板代码还没有处理的事件――SheetFollowHyperlink。你将增加事件程序,拦截事件处理,并响应该事件。根据你的编程语言选择不同的片断。

事件处理(Visual Basic

为了是你的代码运行,你需要响应Application.SheetFollow.Hyperlink事件。在这篇中你增加代码来响应此事件。

增加事件处理(Visual Basic

1.       在代码编辑器的左上角类名下拉列表框中选择ThisApplication

2.       在右上角的方法名下拉列表框中选择SheetFollowHyperlink

Visual Studio .NET建立的时间代码片断如下所示:

' Visual Basic Private

Sub ThisApplication_SheetFollowHyperlink( _

ByVal Sh As Object, _

ByVal Target As Microsoft.Office.Interop.Excel.Hyperlink) _

Handles ThisApplication.SheetFollowHyperlink

End Sub

处理事件(C#)

为了是你的C#代码运行,你需要响应Application.WindowDeactivate事件,在本段中,你需要增加代码来响应这一事件,虽然由Visual Studio .NET模板建立的代码使用稍微有点复杂的代码来拦截这个事件,本端中的步骤使用简单的技术来增加事件处理。

增加事件处理(C#)

1.       增加下列程序片断到Visual Studio .NET建立的OfficeCodeBehind类中:

// C#

protected void ThisApplication_SheetFollowHyperlink( Object Sh, Excel.Hyperlink Target) { }

2.       ThisWorkbook_Open程序,输入下列代码。一旦你输入了本段代码,你将会看到ToolTip。按TAB键,根据ToolTip的指示完成代码行:

// C#

thisApplication.SheetFollowHyperlink += // Once you've finished, the code will look like this, wrapped // to fit this space: ThisApplication.SheetFollowHyperlink += new Microsoft.Office.Interop.Excel. AppEvents_SheetFollowHyperlinkEventHandler( ThisApplication_SheetFollowHyperlink);

增加事件代码并测试

一旦你设置了事件处理,你就能增加代码来响应事件。下面这些步骤将建立一个新的工作簿,并保持焦点在原先的工作簿中。

增加代码建立新的工作簿

1.       修改ThisApplication_SheetFollowHyperlink 程序如下所示:

' Visual Basic

Private Sub ThisApplication_SheetFollowHyperlink( _

ByVal Sh As Object, _

ByVal Target As Microsoft.Office.Interop.Excel.Hyperlink) _ Handles ThisApplication.SheetFollowHyperlink Dim ws As Excel.Worksheet = _

DirectCast(ThisApplication.ActiveSheet, Excel.Worksheet) ThisWorkbook.Sheets.Add() ws.Activate()

End Sub

// C#

protected void ThisApplication_SheetFollowHyperlink( Object Sh, Excel.Hyperlink Target)

{

Excel.Worksheet ws = (Excel.Worksheet)ThisApplication.ActiveSheet; ThisApplication.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing); ws.Activate();

}

注意 Worksheets.Add方法接受四个参数,表示新工作簿插入的地方,增加的工作表号,增加对象的类型。如果你没有定义这些参数,Excel增加一个单独的新工作表作为本工作簿第一个工作表。在Visual Basic For ApplicationsVisual Baisc .NET中,你可以简单的不传递这些参数,Excel做其余的事情。可是,C#不支持选项参数。为了表示你想要Excel做正确的行为,传递Type.Missing给每一个参数。

2.       选择文件菜单中的保存所有文件来保存你的整个方案。

3.       F5运行此项目。这将装入Excel和你建立的文档。

4.       点击超级链接,效验Excel建立新的工作表。尝试多建立一些工作表以效验事件处理程序的工作。

5.       退出Excel并返回Visual Studio .NET

 

结论

在本演练中,你将能使用ExcelApplication对象中的SheetFollowHyperlink事件建立新的工作表。使用微软Office SystemVisual Studio Tools使你能容易的将微软Office Excel 2003对象调用的事件和托管代码整合起来。

本文地址:http://com.8s8s.com/it/it44135.htm