[摘要]windows环境下的对象的链接与嵌入的操作是微软办公套件中非常重要、非常实用又极易混淆的一个功能,本文重点对二者的区别进行了介绍。
[关键词]windows office 对象 链接 嵌入 ole
对象的链接和嵌入(object linking and embedding,简称ole)是 windows应用程序提供的一种插入功能,可以使用链接或嵌入的方式在一个程序的文档中插入另一个程序的文档也可以说是一种把一个文件(或其一部分)插入到另一个文件之中的技术,例如把excel图表加入到powerpoint演示文稿或word文档,或在word里面嵌入一段mpeg等等应用。通过ole插入的数据是“活生生”可编辑的,而不是原始数据的一个静态映像。可以说ole为所有在windows环境下兼容的应用提供了一种通用集成的策略,是集成office大家庭各个应用的功能、构造复合文档的强大工具,是微软为了不同应用程序之间的文件可以互相传递数据而指定的一种规格,使得windows环境更象组装不同应用对象的工作场地。
在解释链接与嵌入之前,我们要首先明白复合文档的概念。一个复合文档是包含不同应用程序生成的对象文档。这种文档就是一种可以存放对象的所有者,它既可以包含嵌入对象,也可以包含链接对象。这样的处理机制可以使用户集中精力于复合文档,而不是每个用于生成文档中对象的应用,甚至当需要时可以使用这些应用程序的功能,而无需用户实际切换到另一个应用程序。WwW.lw881.com
如果用户使用过链接与嵌入操作,会发现就表面效果而言,链接和嵌入很相似,即一个文档内部出现了另一个文档的数据,但两者的后台运作机制却是不同的。本篇文章中,我们讨论的重点在于这两种功能的区别。我们可以通过了解链接与嵌入的特征以后再来理解这二者的区别。
链接和嵌入都是把信息从一个文档插入另一个文档(复合文档)中。嵌入对象是指包含在源文件中并且插入目标文件中的信息(对象)。一旦嵌入,该对象成为目标文件的一部分。对嵌入对象所做的更改反映在目标文件中。对象被嵌入后,即使更改了源文件,目标文件中的信息也不会改变,嵌入对象被插入后,就变成目标文件的一部分,而不再是源文件一部分,双击嵌入对象可在源程序中打开它。链接对象是指该对象在源文件中创建,然后被插入到目标文件中,并且维持两个文件之间的连接关系。更新源文件时,目标文件中的链接对象也可以得到更新。综上所述,我们可以做如下总结:
插入复合文档中的链接对象具有以下特征:(1)链接的对象实际存在于复合文档之外的文件中,如果这些文件被删除了,链接就丢失了。如果它们被移动了,就必须建立新的链接。由于复合文档中只包含对链接的对象的引用,所以复合文档本身体积是很小的;(2)链接可以跨越网络而存在。即一个复合文档可能存在于一个计算机上,而其中的链接文件却可能存在于另一台计算机上,如果一个复合文档被移动到另一个系统上,那么所有的链接文件也必须随之移动。而嵌入对象具有以下特征:(1)嵌入对象是和复合文档存储在一起的,所以嵌入的对象可以在本地进行编辑,用户不需要离开复合文档,并且对嵌入的对象的改变不会影响到原始文件;(2)嵌入的对象可以和包含它的复合文档一起移动,从而使用户可以轻易地改变文档;(3)包含嵌入对象的复合文档是很大的,这是因为复合文档包含构成对象的所有数据,而不象链接那样单纯地引用外部的对象。
在链接和嵌入操作中,提供数据的一方称为服务器应用,接收数据的一方称为容器应用。嵌入操作把服务器应用的数据本身复制到容器应用的文档,但在链接操作中,容器应用的文档只是包含了一个指向服务器应用文档的指针。所以,二者的区别可以这样来理解:首先,如果在容器文件中嵌入了一个对象,容器文件的体积会变大;如果使用链接,容器文件的体积不会发生很大的变化,因为它只包含一个指向对象的链接,而不是包含了对象本身。其次,如果你把带有嵌入对象的文件从一台pc移到另一台pc,被嵌入对象也随着文件一起移动。如果移动了带有链接对象的文件,被链接对象所在的文件不会随之移动,且链接一般不再有效。最后,链接与嵌入最重要的区别在于:当你编辑链接或嵌入对象时,产生的结果不同。双击被链接的对象,服务器应用启动并打开原始的数据文件,所有对链接对象的改动都影响到原始文件(当然也会在容器应用内被链接的对象上反映出来)。例如,假设一个word文档链接了一个excel工作表,则在word文档内对excel工作表的任何改动,都直接影响到原始的excel工作表。同样,如果你用服务器应用直接打开并编辑原始文件,如用excel程序编辑工作表,下次打开容器文件即word文档时也可以看到相应的改动结果。而对于嵌入操作,在容器应用内双击被嵌入的对象,服务器应用启动,但这时的任何改动只对嵌入对象有效,不影响原始文档。