词条 | VSTO开发者指南 |
释义 | 《VSTO开发者指南》是为有兴趣把技能迁移到下一代Office开发的VBA开发者写的。你可以得到编写Word 2003、Excel 2003和Outlook 2003托管代码程序的易懂且实用的介绍,还将学到如何用VSTO 2005 SE为最受欢迎的Office 2003和Microsoft Office 2007应用程序创建插件。作为这方面的专家,作者通过丰富的代码示例来展示受欢迎的VSTO功能,例如智能标记和操作窗格。示例代码也向你演示了如何定制Microsoft Office 2007新的uI功能,包括功能区、自定义任务窗格和Outlook窗体区域。 版权信息作者:(美国)Kathleen McGrath (美国)Paul Stubbs 译者:李永伦 出版社:机械工业出版社 页码:400 页 出版日期:2009年 ISBN:9787111250609 装帧:平装 开本:16 丛书名:华章程序员书库 市场价:59.00 内容简介《VSTO开发者指南》是为有兴趣把技能迁移到下一代Office开发的VBA开发者写的。你可以得到编写Word 2003、Excel 2003和Outlook 2003托管代码程序的易懂且实用的介绍,还将学到如何用VSTO 2005 SE为最受欢迎的Office 2003和Microsoft Office 2007应用程序创建插件。 作为这方面的专家,作者通过丰富的代码示例来展示受欢迎的VSTO功能,例如智能标记和操作窗格。示例代码也向你演示了如何定制Microsoft Office 2007新的uI功能,包括功能区、自定义任务窗格和Outlook窗体区域。 作者简介Kathleen McGrath在Microsoft做编程作家。她为Visual Studio 2005 Tools for the Microsoft Office System(VSTO)、Visual Studio Tools for Applications(VSTA)和Visual Basic写过文档。在加入Microsoft之前,她是一个VBA开发者,为金融印刷及法律行业定制Word应用程序。Kathleen还创建了短录像,示范VSTO和Visual Basic的功能,这些录像放在她的博客上:http://blogs.msdn.com/kathleen。 Paul Stubbs在Microsoft的Visual Studio Tools for Office(VSTO)组做程序经理。除了VSTO,Paul还和VSTA组合作为InfoPath 2007和独立软件供应商(ISV)开发新的托管代码应用程序的可编程开发工具。Paul为MSDN Magazine写过文章,也在诸如TechEd和TechReady的活动上演讲过。 媒体推荐“真希望第一次接触VSTO和.NET Framework时就拥有这本书。它对于那些考虑VSTO以及从Office VBA转到Visual Basic.NET的人都是极具价值的。广泛涉猎的主题为MSDN和其他地方的更加深入的面向开发者的文档提供了一个切入点。” —Cindy Meister,MS Word MVP “《VSTO入门经典》做了一件很好的事,在VBA和VSTO这两个世界之间架起了一座桥。Kathleen和Paul告诉我们,VBA开发者如何在拥有丰富的Office知识的同时也能获得Visual Studio的强大、可维护性和安全性。他们成功地写了一本容易接受、易于理解和令人信服的书。” —KD Hallman,总经理,Microsoft,Developer Division “对于想要转到使用Visual Studio Tools for Office为Office进行.NET开发的VBA开发者,这本书是一个不错的选择。很多示例都展示了VB.NET代码和对应的VBA代码,帮助解释关键概念和用法的区别。” —Steve Hansen,OfficeZealot.com, 编辑推荐VBA开发者将会轻松获得: 对托管代码和Visual Studio集成开发环境(IDE)的深入理解。 多个如何使用视图控件、数据绑定和操作窗格为Word 2003和Excel 2003创建文档级别的定制程序的示例。 为Outlook 2003开发插件的全面概览。 用VSTO和VSTO 2005 SE创建的解决方案在安全和部署方面的有用信息。 如何把VBA解决方案迁移到Visual Basic 2005和VSTO的详细说明。 更多关于Microsoft Office 2007开发VSTO 2005 SE插件定制 功能区、自定义任务窗格和Outlook窗体区域的详细信息。 目录对《VSTO入门经典》的赞誉 1 译者序 2 译者简介 3 序 3 前言 5 介绍 5 致谢 8 作者简介 9 目录 9 第一部分 VSTO介绍 23 第1章 VSTO入门 23 1.1 本章涉及的主题 23 1.2 什么是VSTO? 23 1.3 为什么用VSTO代替VBA? 24 1.4 VSTO的功能 25 1.4.1 宿主项和宿主控件 26 1.4.2 Windows Forms控件 27 1.4.3 智能标记 28 1.4.4 定制任务窗格 28 1.4.5 在文档中缓存数据 29 1.4.6 托管插件 29 1.4.7 安全和部署 29 1.4.8 功能区支持 30 1.4.9 增强开发环境 30 1.5 创建VSTO解决方案 30 1.5.1 用VBA创建Office解决方案 30 1.5.2 用VSTO创建Office解决方案 31 1.5.3 项目类型 32 1.6 VSTO如何与Visual Studio集成 34 1.6.1 把Word和Excel当作设计器来用 34 1.6.2 VSTO中的代码文件 35 1.7 摘要 35 1.8 复习问题 36 第2章 编程环境 36 2.1 本章涉及的话题 36 2.2 Visual Studio IDE介绍 36 2.2.1 环境设置 37 2.2.2 创建Visual Studio Tools for Office项目 37 2.2.3 准予访问VBA项目系统 38 2.2.4 菜单和工具栏 38 2.3 查看IDE窗口 39 2.3.1 代码视图 39 2.3.2 探究Solution Explorer 40 2.3.3 Properties窗口 44 2.3.4 浏览Object Browser 45 2.3.5 项目属性 46 2.3.6 查看其他Visual Studio窗口 47 2.4 编码工具 48 2.4.1 使用智能感知 48 2.4.2 编辑并继续 52 2.5 构建和运行代码 52 2.6 调试你的代码 53 2.6.1 设置断点 55 2.6.2 逐语句、逐过程和跳出代码 56 2.6.3 试用调试工具 58 2.6.4 使用调试窗口 60 2.7 查找和使用帮助 63 2.7.1 目录 63 2.7.2 索引 64 2.7.3 搜索 64 2.7.4 如何实现 64 2.7.5 动态帮助 65 2.8 摘要 65 2.9 复习问题 65 第3章 托管代码介绍 66 3.1本章涉及的话题 66 3.2 什么是托管代码? 66 3.3 面向对象编程介绍 67 3.3.1 理解类和对象 67 3.3.2 分部类 72 3.3.3 泛型类 73 3.3.4 接口 73 3.3.5 面向对象概念 74 3.4 探究 .NET Framework 75 3.4.1 程序集 75 3.4.2 命名空间 76 3.4.3 应用程序域 77 3.4.4 公共语言运行库 77 3.4.5 公共语言规范 79 3.4.6 .NET Framework类库 79 3.5 VSTO和托管代码 82 3.5.1 主互操作程序集 82 3.5.2 解决方案程序集 83 3.5.3 运行VSTO解决方案 84 3.6摘要 85 3.7复习问题 85 第4章 从VBA转到VSTO和Visual Basic 2005 85 4.1本章涉及的话题 85 4.2转到Visual Studio 2005 85 4.3 Visual Basic 2005的新功能 86 4.3.1 My对象 86 4.3.2智能感知代码段 88 4.3.3语句 89 4.3.4运算符 90 4.4 VBA和Visual Basic 2005在语言上的差别 91 4.4.1数据类型 91 4.4.2 方法 94 4.4.3 变量的声明和作用域 94 4.4.4 默认属性 95 4.4.5 枚举 96 4.4.6 异常处理 96 4.5 UserForm对Windows Forms 97 4.5.1 比较ActiveX控件和Windows Forms控件 98 4.5.2 控件功能的改变 103 4.6 摘要 106 4.7 复习问题 106 第二部分 Word和Excel 106 第5章 定制Word和Excel任务窗格 106 5.1 本章涉及的话题 107 5.2 什么是任务窗格? 107 5.3 定制Document Actions任务窗格 108 5.4 管理操作窗格 109 5.4.1 管理操作窗格的大小和位置 109 5.4.2 显示和隐藏操作窗格 110 5.5 设计操作窗格解决方案 110 5.5.1 创建操作窗格解决方案 111 5.5.2 添加操作窗格控件 112 5.5.3 从文档访问操作窗格 112 5.5.4 从操作窗格访问文档 113 5.5.5 管理控件顺序 114 5.6 创建上下文相关的解决方案 115 5.6.1 创建XML架构 115 5.6.2 映射XML元素到你的文档 116 5.6.3 创建多个操作窗格控件 117 5.6.4 显示和隐藏操作窗格上的控件 117 5.6.5 向操作窗格控件添加功能 118 5.7 摘要 119 5.8 复习问题 119 第6章 使用VSTO定制Word 119 6.1 本章涉及的话题 119 6.2 对Word进行编程 120 6.2.1把录制的VBA宏转换成VSTO里的Visual Basic 121 6.2.2重写内置命令 122 6.3 Word宿主项和宿主控件 124 6.3.1向文档添加宿主控件 124 6.3.2从基础的互操作对象访问宿主控件 128 6.3.3从宿主控件访问互操作对象 129 6.4 对文档上的宿主控件进行数据绑定 129 6.4.1把数据绑定到控件 130 6.4.2在文档里缓存数据 132 6.5 对事件进行编程 132 6.5.1 Bookmark控件的事件 133 6.5.2 XMLNode控件的事件 138 6.5.3 XMLNodes控件的事件 140 6.5.4 Document的事件 140 6.6 对Bookmark的特别强化 145 6.7 使Word文档智能化 146 6.8 摘要 147 6.9 复习问题 147 第7章 使用VSTO定制Excel 148 7.1 本章涉及的话题 148 7.2 对Excel进行编程 148 7.2.1了解Excel对象模型 150 7.2.2把录制的VBA宏转换成VSTO里的Visual Basic 150 7.2.3写回调从VBA访问VSTO代码 151 7.3 Excel宿主项和宿主控件 153 7.3.1宿主项 153 7.3.2宿主控件 153 7.3.3向工作表添加宿主控件 154 7.3.4移除宿主控件 157 7.3.5在运行时添加宿主控件 157 7.3.6控件持久化 159 7.3.7从基础的互操作对象访问宿主控件 160 7.3.8从宿主控件访问互操作对象 160 7.3.9在Excel里添加宿主项 161 7.3.10 Excel的区域设置问题 161 7.4 对工作表上的宿主控件进行数据绑定 162 7.4.1创建数据源 162 7.4.2向工作表添加数据绑定控件 163 7.4.3使用关联数据 166 7.4.4在工作簿里缓存数据 166 7.5 对事件进行编程 167 7.5.1 NamedRange控件事件 167 7.5.2 ListObject控件事件 169 7.5.3 XMLMappedRange控件事件 172 7.5.4 Chart控件事件 173 7.5.5工作表事件 175 7.5.6图表工作表事件 177 7.5.7工作簿事件 177 7.6 使Excel更智能 180 7.7 摘要 181 7.8 复习问题 181 第8章 Word和Excel里的控件 181 8.1 本章涉及的话题 182 8.2 关于控件 182 8.3 向工具栏和菜单添加控件 182 8.3.1创建工具栏按钮 182 8.3.2创建菜单和菜单项 185 8.4 使用Windows Forms控件 186 8.5 向Windows Forms添加控件 193 8.6 向任务窗格添加控件 196 8.7 向Excel和Word文档添加控件 197 8.7.1 Word里的Windows Forms控件 198 8.7.2 Excel里的Windows Forms控件 199 8.7.3 添加数据绑定控件 200 8.7.4 向文档添加自定义控件 202 8.7.5 控件类型 203 8.7.6 在运行时添加控件 204 8.7.7 文档上的Windows Forms控件的功能 207 8.8 摘要 208 8.9 复习问题 208 第9章 Word和Excel里的智能标记 208 9.1 本章涉及的话题 209 9.2 什么是智能标记? 209 9.3 用VSTO创建Word和Excel智能标记 210 9.4 理解智能标记的属性 212 9.4.1 Actions属性 212 9.4.2 Caption属性 212 9.4.3 Expressions属性 213 9.4.4 SmartTagType属性 213 9.4.5 Terms属性 213 9.5 在智能标记上执行操作 213 9.6 正则表达式介绍 215 9.6.1 使用正则表达式识别词组 215 9.6.2 识别文字模式 216 9.7 重写智能标记识别器 219 9.7.1 创建Word项目 220 9.7.2 运行代码 220 9.7.3 进入离线状态 221 9.8 摘要 222 9.9 复习问题 222 第三部分 Outlook和其他 222 第10章 使用VSTO为Outlook创建插件 222 10.1 本章涉及的话题 223 10.2 使用VSTO的应用程序级别的定制程序 223 10.2.1共享插件和VSTO插件之间的区别 224 10.2.2 Outlook插件项目模板 225 10.2.3把Outlook宏转换成VSTO插件 226 10.2.4创建一个简单的插件 227 10.2.5 Visual Studio里的智能感知 228 10.3 Outlook对象模型概述 229 10.3.1 Application对象 230 10.3.2 NameSpace对象 230 10.3.3 Explorer对象 230 10.3.4 Inspector对象 231 10.3.5 Outlook文件夹 231 10.3.6 Outlook项 232 10.3.7事件 233 10.4 定制Outlook里的菜单和工具栏 233 10.5 调试插件 234 10.6 使用VSTO创建的Outlook插件的安全性 237 10.7 摘要 240 10.8 复习问题 240 第11章 安全性和部署 240 11.1 本章涉及的话题 240 11.2 VSTO安全模型 240 11.3 部署Word和Excel解决方案 243 11.3.1客户端要求 243 11.3.2 Microsoft PSS VSTO 2005 Client TroubleShooter 244 11.3.3部署模型 244 11.3.4应用程序和部署清单 245 11.3.5部署任务 246 11.3.6 Public Wizard 246 11.3.7更新和回滚 250 11.3.8 Microsoft Installer项目 251 11.4 部署Outlook解决方案 253 11.5 摘要 253 11.6 复习问题 253 第12章 把VBA解决方案迁移到VSTO 254 12.1 本章涉及的话题 254 12.2 迁移概述 254 12.3 迁移策略 254 12.4 一个Word VBA项目的简单迁移 255 12.5 一个Word VBA项目的高级迁移 256 12.5.1复制Word模板 256 12.5.2从模板移除VBA代码和UserForm 257 12.5.3创建Windows窗体 257 12.5.4启动Windows窗体 258 12.5.5运行解决方案 258 12.5.6重新设计解决方案 258 12.5.7 Bookmark视图控件 259 12.5.8使用操作窗格 259 12.6 VBA和VSTO的互操作 260 12.7 摘要 262 12.8 复习问题 263 第13章 VSTO的高级话题 263 13.1 本章涉及的话题 263 13.2 ServerDocument概述 263 13.3 附加和分离基于文档的定制程序 264 13.2.1使用ServerDocument从文档分离解决方案 264 13.2.2使用ServerDocument向文档附加解决方案 264 13.2.3使用自定义文档属性向文档附加解决方案 265 13.4 读写数据缓存 265 13.4.1缓存数据结构 265 13.4.2创建一个有缓存数据的测试文档 266 13.4.3读取文档数据缓存 267 13.4.4运行解决方案 269 13.5 清除数据缓存 269 13.6 摘要 270 13.7 复习问题 270 第14章 VSTO 2005 SE和2007 Microsoft Office System 270 14.1 本章涉及的话题 270 14.2 VSTO 2005 SE入门 271 14.2.1所有发布版本里的功能 271 14.2.2 VSTO 2005 SE的插件模型 273 14.3 创建插件 275 14.4 定制功能区 276 14.4.1功能区项 276 14.4.2和XML协同工作 278 14.4.3定制内置的功能区 280 14.4.4向功能区添加其他控件 282 14.4.5快速访问工具栏 285 14.4.6不受支持的功能区功能 286 14.4.7 Outlook里的功能区 286 14.5 创建自定义任务窗格 289 14.5.1为PowerPoint创建插件 289 14.5.2打开和关闭自定义任务窗格 290 14.5.3管理多个Word文档上的任务窗格 291 14.5.4把文档级别的定制程序转换成VSTO 2005 SE插件 292 14.5.5显示多个任务窗格 293 14.6 创建自定义窗体区域 294 14.6.1创建Outlook窗体区域文件 294 14.6.2创建新的窗体区域 294 14.6.3保存窗体区域 295 14.6.4创建VSTO 2005 SE Outlook插件项目 295 14.6.5在你的项目里内嵌窗体区域 295 14.6.6创建和注册窗体区域清单 296 14.6.7创建窗体区域注册表文件 296 14.6.8创建窗体区域启动类 296 14.6.9 连接窗体区域控件 297 14.6.10 连接窗体区域 298 14.6.11运行项目 298 14.7 摘要 298 14.8 复习问题 299 附录A 创建代码段 299 A.1 导入代码段 300 A.2 插入代码段 300 A.3 使用Code Snippets Manager 301 附录B 创建Inspector CommandBar 301 …… 序言Visual Studio Tools for Office(VSTO)的目标受众是“专业开发者”。这个术语有多重含义,而我们听到的最受认可的定义是“通过写代码获取报酬的人”。换句话说,这是他的主业。他不是部门开发者,比如说,把写Excel宏作为他的会计任务的一部分的会计人员,或者定制Word来增加他的生产力的办公人员。相反,他是一个有兴趣把Microsoft Office作为开发平台的.NET开发者。 我们相信传统的Office开发者也会对VSTO感兴趣。在加入Microsoft之前,我们俩都是VBA开发者,定制Office应用程序,并且我们非常有兴趣了解托管代码。在这方面,我们不认为我们是唯一的。有上百万VBA开发者,许多都有兴趣学习下一代Office开发。现在的VSTO图书和文档通常都不是为VBA开发者写的;它假设开发者熟悉Visual Studio、面向对象编程和.NET Framework。这就不难理解它把重点更多地放在VSTO的功能和如何使用笨重的Office对象模型。 我们想为VBA开发者写一本书。虽然你可能不熟悉.NET编程,但你有一个重要的优势:Office对象模型的知识。作为一个Office开发者,你很可能非常熟悉Office应用程序,在操作Office对象模型方面也有丰富的经验。我们认为学习托管代码的最佳环境是你已经熟悉的地方:Office开发。 VSTO把Office开发带到.NET的世界,和VBA相比,它有优点也有缺点。使用VSTO,你可以更好地定制Word、Excel和Outlook,比如说,创建自定义任务窗格、向文档添加智能标记和把文档上的对象绑定到数据源。使用VSTO 2005 SE,你可以为六个Office应用程序创建插件、定制新的2007 Microsoft Office System的功能区和创建应用程序级别的自定义任务窗格。 我们有幸和为VSTO设计、编码、测试和写文档的人一起工作,并从他们那里学到了很多。我们得到了内部人士对VSTO的看法,我们希望以一种易懂和有趣的方式把这些信息传递给你。 书摘第一部分 VSTO概述 第1章 VSTO入门 1.4 VSTO的功能 VSTO提供的编程模型扩展了Word和Excel里的一些公共对象,例如书签和范围。这些对象现在具备了数据绑定的能力。比如说,你可以把数据库里的字段绑定到Excel里的单元格。使用数据绑定,你可以让数据自动填充到文档的对应位置,并且根据用户的输入更新数据库里的数据。 VSTO编程模型背后的理念是把数据及其表现形式分离开来。你现在可以直接访问存储在数据源里的数据,而不用在文档里查找显示这些数据的对象。数据源可以是数据库、XML文件,甚至是文本文件。 数据绑定对于服务器端编程尤其有用。VSTO使你可以在文档里储存能被外部应用程序访问(无需打开该文档)的数据。若要做到这点,你可以通过把数据储存在XML数据岛或者数据缓存(data cache)里。如果你把数据储存在数据缓存里,那么你可以在服务器上访问数据缓存,而无需打开文档或者在服务器上安装Word或Excel。 VSTO扩展对象的另一种做法是添加本地对象里没有的事件。比如说,你现在可以对工作表单元格的更改事件编程,而不用遍历对象模型并编写许多行代码找出哪个单元格发生了改变。当你在文档或者工作表上添加这些扩展对象时,VSTO把它们创建成一级·,NET对象,你可以直接对它们编程。这些对象称为宿主控件(host contr01),而你添加宿主控件的文档或者工作表则称为宿主项(host item)。 使用VSTO 2005 SE,你可以为Office 2003和2007 Microsoft Office System创建应用程序级别的插件。VSTO 2005 SE还支持定制Office 2007的新用户界面,包括功能区、自定义任务窗格和Outlook窗体区域。 1.4.1 宿主项和宿主控件 正如前面所提到的那样,宿主项是一个表示Office对象模型人口点的类。默认情况下,当你创建1个Excel解决方案时,将会创建4个Excel的宿主项:Workbook、Sheetl、Sheet2和sheet3。如果你在设计时添加更多工作表,那些工作表将被创建为宿主项。宿主项通过添加数据绑定的能力和提供额外的事件来扩展本地Office文档。 宿主项是word或者Excel的设计图面(design surface),担当控件容器的角色,这是看待宿主项的一个角度。就像你在VBA里把控件添加到UserForm上一样,你可以把Window Forms控件和宿主控件添加到宿主项上。这条规则的一个例外是工作簿宿主项。工作簿可以包含组件(component),但不能包含控件。 …… |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。