《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. 数据结构(C语言版)-第1章 绪论

  2. GRCh38基因组和注释文件探究

    ensembl/release91: cat Homo_sapiens.GRCh38.91.gtf | grep -v "#" | cut -f9 | cut -f1,3,6,8 ...

  3. 【Linux】linux常用查看命令

    查看磁盘大小的命令df .du df -h 查看整台服务器的硬盘使用情况 du -sh * 查看每个文件夹的大小 ps -ef 查看所有进程 top 实时显示进程状态用户 free -m 查看内存使用 ...

  4. java中的Sort函数,你值得看

    基于C语言中的sort如此这么方便,自然而然,java中也有类似C的sort函数. 1.普通数组:Arrays.sort(数组名,开始位置,结束位置). 2.类中属性排序: 模板: class A { ...

  5. apiCloud 选择图片,选择视频,压缩图片

    选择视频或图片,只需要一个 UIMediaScanner 模板就可以实现,点击链接查看api https://docs.apicloud.com/Client-API/UI-Layout/UIMedi ...

  6. 五中常见的PHP设计模式

    策略模式 策略模式是对象的行为模式,用意是对一组算法的封装.动态的选择需要的算法并使用. 策略模式指的是程序中涉及决策控制的一种模式.策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编 ...

  7. Linux文件系统管理

    第九讲 文件系统管理   基础知识点:   硬盘的构成:主要由盘片.机械手臂.磁头与主轴马达所组成,实际的数据都是写在具有磁性物质上的盘片,通过主轴马达让盘片转动,机械手臂可伸展让磁头在盘片上读取数据 ...

  8. 牛客寒假算法基础集训营6 E 海啸

    题目链接点这里 这个题输入类型是第一次见,并没有把n和m的具体范围给你,但是给了n*m的范围,武断的设为1e6*1e6的二维数组铁铁WA,就将二维数组转换为一维数组 题目类型属于二维数组前缀和,有um ...

  9. spring boot(一)入门

    什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...

  10. C++的字符串多行输入

    #include<iostream> using namespace std; int main() { int r, c; char grid[50][51]; cout << ...