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