150 likes | 558 Views
第 14 章 C# Office 编程 本章要点: VSTO 开发工具 在 C# 中操纵 Excel 在 C# 中操纵 Word. 14.1 C# Office 编程概述. 进行 Office 编程除了需要 .NET 开发环境外还需要有特定的开发环境,包括: (1) Visual Studio Tools for Office 开发套件,简称 VSTO 。 (2) Microsoft Office 套件( 2003 SP1 版本或更高),包括主互操作集 PIAs
E N D
第14章 C# Office编程 • 本章要点: • VSTO开发工具 • 在C#中操纵Excel • 在C#中操纵Word
14.1C# Office编程概述 • 进行Office编程除了需要.NET开发环境外还需要有特定的开发环境,包括: • (1) Visual Studio Tools for Office开发套件,简称VSTO。 • (2) Microsoft Office套件(2003 SP1版本或更高),包括主互操作集PIAs • 使用VSTO可以创建两种类型的解决方案。文档级自定义项和应用程序级外接程序。它们具有以下特征: • 文档级自定义项由附加于 Microsoft Office Word 2003 文档或 Microsoft Office Excel 2003 工作簿的托管代码程序集组成。 • 应用程序级外接程序由作为Microsoft Office应用程序中的外接程序运行的托管代码程序集组成
14.2Visual Studio Tools for Office • 14.2.1 安装VSTO • 可以Microsoft的官方网站上下载该组件,VSTO 2005作为一个开发组件,在开发计算机上安装设计工具需要有特定的软件环境支持,安装 VSTO 2005 需要以下软件: • 安装 Office 2003及更高版本。 • Office 2003 Primary Interop Assemblies(PIAs)主互操作程序集,安装于 Windows 全局程序集缓存 (GAC) 中。 安装成功后启动Visual Studio 2005,选择“文件”|“新建”|“项目”菜单项,弹出“新建项目”窗口,如下图所示:
14.2Visual Studio Tools for Office 14.2.1 安装VSTO
14.2Visual Studio Tools for Office 14.2.2 VSTO数据模型概述 VSTO解决方案的主要目的是在Office文档中将数据同视图分开。数据引用存储在文档中的信息:数字、文字等。视图指应用程序的用户界面和对象模型。 (1) 数据编程模型 VSTO在Microsoft Office文档中将数据同视图分开。开发人员可以将视图同数据分开,而且可以直接更新数据,而不用编写操作视图的代码在数据和视图之间使用数据绑定,以保持二者同步。同时还可以向独立于文档视图组件的数据中添加验证代码。 (2) 服务器文档创建 不用启动Office应用程序就可以处理嵌入在文档中的数据。当用户打开关联的Office文档时,视图将通过数据绑定方式与数据进行同步,并为用户提供更新后的数据。
14.2Visual Studio Tools for Office • 14.2.3 VSTO解决方案概述 • 文档级自定义项 • 典型结构 • 在文档级解决方案中,程序集被链接到文档,但与文档分开存储。带有链接的文档或工作簿被称为具有托管代码扩展。 • 计时涉及开发人员和设计人员的步骤 • 开发人员在Visual Studio 中创建文档级项目。该项目包括文档和在该文档后端运行的程序集。该文档可以是已存在的文档(通常是由设计人员创建的),或者也可以随项目创建一个新文档。设计人员(创建该项目的开发人员或其他人)为最终用户创建该文档的最后外观。
14.2Visual Studio Tools for Office • 14.2.3 VSTO解决方案概述 • 文档级自定义项 • 运行时涉及最终用户的步骤 • (1)最终用户打开自定义Word文档或Excel工作簿。 • (2)文档或工作簿加载编译过的程序集。 • (3)程序集响应文档或工作簿中的事件 • 用程序级外接程序 • 使用VSTO创建的外接程序由作为外接程序加载到Microsoft Office应用程序中的程序集组成。使用VSTO创建的外接程序既可以访问该应用程序的对象模型,也可以访问 Microsoft .NET Framework。
14.3C# Excel编程 14.3.1 读取Excel文件数据 如果仅需要将数据从Excel文件中读入内存,可以使用Microsoft.Jet.OLEDB.4.0引擎来访问Excel文件,这种方式下只需使用Jet数据库引擎创建一个数据库连接,然后读取数据即可。
14.3C# Excel编程 • 14.3.2 操纵Excel文件 • 在安装完主互操作集后可在“C:\Program Files\Common Files\Microsoft Shared\VSTO\8.0”目录下找到Microsoft.Office.Tools.Excel.dll及Microsoft.Office.Tools.Word.dll等相关内容。程序集中包含的与操纵Excel文件相关的类,Microsoft的Excel对象模型包括了128个不同的对象,其中使用最频繁的包括: • Microsoft.Office.Interop.Excel.Application • Microsoft.Office.Interop.Excel.Workbook • Microsoft.Office.Interop.Excel.Worksheet • Microsoft.Office.Interop.Excel.Range
14.3C# Excel编程 14.3.2 操纵Excel文件 Application、WorkBook、WorkSheet等构成了一套访问Excel文件的体系,各个类之间的关系如下图所示:
14.3C# Excel编程 14.3.2 操纵Excel文件 在C#项目中操纵Excel文件还需要导入Microsoft Office 11.0 Object Library COM库,过程如下: (1) 打开Visual Studio 2005,新建一个基于C#控制台或Windows应用程序; (2) 在解决方案资源管理器中,右击项目名称,在弹出的快捷菜单中选择“添加引用”菜单项,弹出“添加引用”窗体,如下图所示:
14.4C# Word编程 14.4.1 在Word项目中访问对象 Word对象模型的抽象如下图所示
14.4C# Word编程 • 14.4.1 在Word项目中访问对象 • Word 提供了数百个可与之交互的对象,常用对象包括: • Application 对象:Application对象表示Word应用程序,是其他所有对象的父级。它的所有成员通常作为一个整体应用于Word。可以使用该对象的属性和方法来控制Word环境。 • Document 对象:Document对象是Word编程的中枢 • Selection 对象:Selection对象表示当前选择的区域 • Range 对象:Range 对象表示文档中的一个连续的区域,由一个起始字符位置和一个结束字符位置定义。 • Bookmark 对象
14.4C# Word编程 • 14.4.3 Word文本操作 • 在范围中插入文本。 • 可以使用 Range 对象的 Text 属性在文档中插入文本。以下示例演示了在文档的开头插入“Hello Word”: • object start = 0; • object end = 0; • Word.Range rng = this.Range(ref start, ref end); • rng.Text = "Hello Word"; • 将范围中的文本替换为新文本 • 使用这种方式与第一种类似,首先创建范围,此范围内包含有相应的内容,插入新内容后原有内容将被覆盖。该方式的语法如下: • object start = 0; • object end = 12; • Word.Range rng = this.Range(ref start, ref end);
14.4C# Word编程 • 14.4.3 Word文本操作 • 设置文本格式 • 实现了向文档添加内容后,需要设置内容的格式,若没有这一部分,所加内容为默认格式,格式设置包括的内容很广泛,如:字体、颜色、对齐方式等 。 • 处理表格 • 表格处理是文档操作中重要的一环,利用WORD对象模型可以轻松实现对表格的处理操作,包括新建表格、插入内容、合并单元格等。.NET中通过Document类对象的Tables属性提供对表操作的支持,该属性为一个表集合,通过索引可获取特定的表,执行目标操作。