《Visual Studio Tools for Office: Using C# with Excel, Word, Outlook, and InfoPath 》——By Eric Carter, Eric Lippert

前言
在2002年,Visual Studio .NET和.NET Framework的第一个版本即将完成。我们中的几个意识到微软的.NET将会错过Office,除非我们做了一些事情。

以前曾经是Visual Basic for Applications(VBA),这是一个集成到所有Office应用程序中的简单开发环境。每个Office应用程序都有一个丰富的对象模型,通过一种称为COM的技术访问。数以百万计的开发人员将自己定义为“Office开发人员”,并使用VBA和Office COM对象模型,从自动化重复任务到创建完整的业务解决方案,利用Office的丰富功能和用户界面。这些开发者意识到他们的用户在Office上度过了一天。通过构建在Office内部运行的解决方案,他们不仅使用户满意,还通过重用Office应用程序中已经提供的功能,创建了更多,成本更低的解决方案。

不幸的是,由于VBA的一些限制,Office编程开始得到一个坏的评论。 VBA中由小型工作组或个人开发的解决方案将获得势头,专业开发人员将不得不采取措施,开始支持他们。对于专业开发人员来说,VBA环境感觉很简单和有限,当然,它也实现了一种单一的语言:Visual Basic。 VBA嵌入式代码在每个自定义文档中,这使得很难修复错误和更新解决方案,因为错误会被复制到整个企业的文档中。 VBA模型的安全漏洞导致了企业将蠕虫和宏病毒的VBA关闭。

Visual Studio .NET和.NET Framework提供了一种解决所有这些问题的方法。存在巨大的机会不仅将新的.NET Framework和开发人员工具的丰富性与Office一直为开发人员提供的强大平台相结合,还解决了困扰VBA的问题。这个实现的结果是Visual Studio Tools for Office(VSTO)。

VSTO的第一个版本很简单,但它实现了让专业开发人员利用Visual Studio .NET和.NET Framework的全部功能将代码放置在Excel 2003和Word 2003文档和模板的关键目标。它让专业开发人员在VB.NET和C#中开发Office解决方案。它通过将文档链接到.NET程序集而不是将其嵌入到文档中来解决嵌入式代码的问题。它还引入了一种使用.NET代码访问安全性来防止蠕虫和宏病毒的新安全模型。

VSTO的第二版,被称为VSTO 2005,这本书涵盖的VSTO版本更加雄心勃勃。它带来了Office开发人员以前无法使用的功能,例如数据绑定和数据/视图分离,Visual Studio中Excel和Word文档的设计时视图,对文档中Windows Forms控件的丰富支持,创建能力自定义Office任务窗格,针对Officeand的服务器端编程支持,这只是划伤表面。虽然VSTO的主要目标是专业开发人员,但这并不意味着使用VSTO构建Office解决方案是火箭科学。 VSTO可以通过几行代码创建非常丰富的应用程序。

本书尝试将使用VSTO成功的所有信息放在一个位置,以便对Word 2003,Excel 2003,Outlook 2003和InfoPath 2003进行编程。它引入了Office对象模型,并涵盖了这些对象模型中最常用的对象。此外,本书还将帮助您避免Office对象模型的COM起源产生的一些陷阱。

本书还提供了VSTO所有丰富功能的内部人士观点。我们参与了许多这些功能的设计和实现。因此,我们可以从过去三年的VSTO生活和呼吸的独特角度讲话。使用VSTO的编程办公室功能强大而有趣。我们希望您喜欢使用VSTO,就像我们喜欢的文章一样,并且创建它。

Eric Carter
Eric Lippert

2005年5月

VSTO:使用C#开发Excel、Word【3】的更多相关文章

  1. VSTO:使用C#开发Excel、Word【10】

    第二部分:.NET中的Office编程本书前两章介绍了Office对象模型和Office PIA. 您还看到如何使用Visual Studio使用VSTO的功能构建文档中的控制台应用程序,加载项和代码 ...

  2. VSTO:使用C#开发Excel、Word【9】

    文件背后的代码VSTO支持文档背后的代码,要求开发人员使用VSTO项目中生成的具有预连接上下文和预连接事件的类.这些类有时被称为“代码后面”类,因为它们是与特定文档或工作表相关联的代码.在Word中, ...

  3. VSTO:使用C#开发Excel、Word【5】

    <Visual Studio Tools for Office: Using C# with Excel, Word, Outlook, and InfoPath >——By Eric C ...

  4. VSTO:使用C#开发Excel、Word【4】

    <Visual Studio Tools for Office: Using C# with Excel, Word, Outlook, and InfoPath >——By Eric C ...

  5. VSTO:使用C#开发Excel、Word【2】

    <Visual Studio Tools for Office: Using C# with Excel, Word, Outlook, and InfoPath >——By Eric C ...

  6. VSTO:使用C#开发Excel、Word【1】

    <Visual Studio Tools for Office: Using C# with Excel, Word, Outlook, and InfoPath >——By Eric C ...

  7. VSTO 学习笔记(十一)开发Excel 2010 64位自定义公式

    原文:VSTO 学习笔记(十一)开发Excel 2010 64位自定义公式 Excel包含很多公式,如数学.日期.文本.逻辑等公式,非常方便,可以灵活快捷的对数据进行处理,达到我们想要的效果.Exce ...

  8. 我的VSTO之路(三):Word基本知识

    原文:我的VSTO之路(三):Word基本知识 在前一篇文章中,我初步介绍了如何如何开发一个VSTO程序,在本文中,我将进一步深入介绍Word的插件开发.Word是一个大家在日常工作中一直接触的文档工 ...

  9. Aspose 强大的服务器端 excel word ppt pdf 处理工具

    Aspose 强大的服务器端 excel word ppt pdf 处理工具 http://www.aspose.com/java/word-component.aspx

随机推荐

  1. 动态规划-子数组乘积小于k的总个数 Subarray Product Less Than K

    2018-09-01 23:02:46 问题求解: 问题求解: 最开始的时候,一眼看过去就是一条 dp 嘛,保存每个数字结尾的长度和,最后求和就好,至于长度如何求,本题中需要用滑动窗口来维护. 很好的 ...

  2. python中configparser模块的使用

    configparser模块用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser. 首先要写一个如下所示的配置文件: [DEFAULT] serv ...

  3. 雷林鹏分享:C# 可空类型(Nullable)

    C# 可空类型(Nullable) C# 可空类型(Nullable) C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 nu ...

  4. LeetCode--008--字符串转换整数 (atoi)(java)

    请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之 ...

  5. java开学第一周测试代码

    Account.java /* 信1705-3 20173612  陈阳阳 */package ATM; public class Account { private String accountID ...

  6. android--------Socket的简单了解

    Socket目录 Socket通信简介 Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连 ...

  7. prune研究记录(二)

    发现之前自己写的程序里面的一个bug,就是关于再函数中改变全局变量的事情,有两个函数,在一个函数中定义了一个全局变量并进行了赋值操作,但是在后面的函数中没有申明全局变量,所以后面这个函数本来是想要改变 ...

  8. 安装redisPHP扩展

    1. "predis/predis":"~1.1@dev" 2.composer update 即可,这是给项目添加redis扩展 启动服务端 redis-se ...

  9. MySQL事务(三)

    一.事务(Innodb锁)的隔离级别概述 并发事务带来的问题: 更新丢失(lost update):当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,由于每个事务都不知道其他事务的存在,就会 ...

  10. apache配置一个域名读取多个路径代码(包括主干和分支)

    <VirtualHost *:80> ServerAdmin 651629095@qq.com DocumentRoot "C:/wamp/www/sms/trunk/publi ...