ole设置excel格式(excel支持ole技术吗)

Excel表格网 2022-11-23 08:07 编辑:admin 138阅读

1. excel支持ole技术吗

1 进程与进程通信

进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源(如文件、管道等)组成。多进程/多线程是Windows操作系统的一个基本特征。Microsoft Win32应用编程接口(Application Programming Interface, API)提供了大量支持应用程序间数据共享和交换的机制,这些机制行使的活动称为进程间通信(InterProcess Communication, IPC),进程通信就是指不同进程间进行数据共享和数据交换。

正因为使用Win32 API进行进程通信方式有多种,如何选择恰当的通信方式就成为应用开发中的一个重要问题,下面本文将对Win32中进程通信的几种方法加以分析和比较。

2 进程通信方法

2.1 文件映射

文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待。因此,进程不必使用文件I/O操作,只需简单的指针操作就可读取和修改文件的内容。

Win32 API允许多个进程访问同一文件映射对象,各个进程在它自己的地址空间里接收内存的指针。通过使用这些指针,不同进程就可以读或修改文件的内容,实现了对文件中数据的共享。

应用程序有三种方法来使多个进程共享一个文件映射对象。

(1)继承:第一个进程建立文件映射对象,它的子进程继承该对象的句柄。

(2)命名文件映射:第一个进程在建立文件映射对象时可以给该对象指定一个名字(可与文件名不同)。第二个进程可通过这个名字打开此文件映射对象。另外,第一个进程也可以通过一些其它IPC机制(有名管道、邮件槽等)把名字传给第二个进程。

(3)句柄复制:第一个进程建立文件映射对象,然后通过其它IPC机制(有名管道、邮件槽等)把对象句柄传递给第二个进程。第二个进程复制该句柄就取得对该文件映射对象的访问权限。

文件映射是在多个进程间共享数据的非常有效方法,有较好的安全性。但文件映射只能用于本地机器的进程之间,不能用于网络中,而开发者还必须控制进程间的同步。

2.2 共享内存

Win32 API中共享内存(Shared Memory)实际就是文件映射的一种特殊情况。进程在创建文件映射对象时用0xFFFFFFFF来代替文件句柄(HANDLE),就表示了对应的文件映射对象是从操作系统页面文件访问内存,其它进程打开该文件映射对象就可以访问该内存块。由于共享内存是用文件映射实现的,所以它也有较好的安全性,也只能运行于同一计算机上的进程之间。

2.3 匿名管道

管道(Pipe)是一种具有两个端点的通信通道:有一端句柄的进程可以和有另一端句柄的进程通信。管道可以是单向-一端是只读的,另一端点是只写的;也可以是双向的一管道的两端点既可读也可写。

匿名管道(Anonymous Pipe)是 在父进程和子进程之间,或同一父进程的两个子进程之间传输数据的无名字的单向管道。通常由父进程创建管道,然后由要通信的子进程继承通道的读端点句柄或写 端点句柄,然后实现通信。父进程还可以建立两个或更多个继承匿名管道读和写句柄的子进程。这些子进程可以使用管道直接通信,不需要通过父进程。

匿名管道是单机上实现子进程标准I/O重定向的有效方法,它不能在网上使用,也不能用于两个不相关的进程之间。

2.4 命名管道

命名管道(Named Pipe)是服务器进程和一个或多个客户进程之间通信的单向或双向管道。不同于匿名管道的是命名管道可以在不相关的进程之间和不同计算机之间使用,服务器建立命名管道时给它指定一个名字,任何进程都可以通过该名字打开管道的另一端,根据给定的权限和服务器进程通信。

命名管道提供了相对简单的编程接口,使通过网络传输数据并不比同一计算机上两进程之间通信更困难,不过如果要同时和多个进程通信它就力不从心了。

2.5 邮件槽

邮件槽(Mailslots)提 供进程间单向通信能力,任何进程都能建立邮件槽成为邮件槽服务器。其它进程,称为邮件槽客户,可以通过邮件槽的名字给邮件槽服务器进程发送消息。进来的消 息一直放在邮件槽中,直到服务器进程读取它为止。一个进程既可以是邮件槽服务器也可以是邮件槽客户,因此可建立多个邮件槽实现进程间的双向通信。

通过邮件槽可以给本地计算机上的邮件槽、其它计算机上的邮件槽或指定网络区域中所有计算机上有同样名字的邮件槽发送消息。广播通信的消息长度不能超过400字节,非广播消息的长度则受邮件槽服务器指定的最大消息长度的限制。

邮件槽与命名管道相似,不过它传输数据是通过不可靠的数据报(如TCP/IP协议中的UDP包)完成的,一旦网络发生错误则无法保证消息正确地接收,而命名管道传输数据则是建立在可靠连接基础上的。不过邮件槽有简化的编程接口和给指定网络区域内的所有计算机广播消息的能力,所以邮件槽不失为应用程序发送和接收消息的另一种选择。

2.6 剪贴板

剪贴板(Clipped Board)实质是Win32 API中一组用来传输数据的函数和消息,为Windows应用程序之间进行数据共享提供了一个中介,Windows已建立的剪切(复制)-粘贴的机制为不同应用程序之间共享不同格式数据提供了一条捷径。当用户在应用程序中执行剪切或复制操作时,应用程序把选取的数据用一种或多种格式放在剪贴板上。然后任何其它应用程序都可以从剪贴板上拾取数据,从给定格式中选择适合自己的格式。

剪贴板是一个非常松散的交换媒介,可以支持任何数据格式,每一格式由一无符号整数标识,对标准(预定义)剪贴板格式,该值是Win32 API定义的常量;对非标准格式可以使用Register Clipboard Format函数注册为新的剪贴板格式。利用剪贴板进行交换的数据只需在数据格式上一致或都可以转化为某种格式就行。但剪贴板只能在基于Windows的程序中使用,不能在网络上使用。

2.7 动态数据交换

动态数据交换(DDE)是使用共享内存在应用程序之间进行数据交换的一种进程间通信形式。应用程序可以使用DDE进行一次性数据传输,也可以当出现新数据时,通过发送更新值在应用程序间动态交换数据。

DDE和剪贴板一样既支持标准数据格式(如文本、位图等),又可以支持自己定义的数据格式。但它们的数据传输机制却不同,一个明显区别是剪贴板操作几乎总是用作对用户指定操作的一次性应答-如从菜单中选择Paste命令。尽管DDE也可以由用户启动,但它继续发挥作用一般不必用户进一步干预。DDE有三种数据交换方式:

(1) 冷链:数据交换是一次性数据传输,与剪贴板相同。

(2) 温链:当数据交换时服务器通知客户,然后客户必须请求新的数据。

(3) 热链:当数据交换时服务器自动给客户发送数据。

DDE交换可以发生在单机或网络中不同计算机的应用程序之间。开发者还可以定义定制的DDE数据格式进行应用程序之间特别目的IPC,它们有更紧密耦合的通信要求。大多数基于Windows的应用程序都支持DDE。

2.8 对象连接与嵌入

应用程序利用对象连接与嵌入(OLE)技术管理复合文档(由多种数据格式组成的文档),OLE提供使某应用程序更容易调用其它应用程序进行数据编辑的服务。例如,OLE支持的字处理器可以嵌套电子表格,当用户要编辑电子表格时OLE库可自动启动电子表格编辑器。当用户退出电子表格编辑器时,该表格已在原始字处理器文档中得到更新。在这里电子表格编辑器变成了字处理器的扩展,而如果使用DDE,用户要显式地启动电子表格编辑器。

同DDE技术相同,大多数基于Windows的应用程序都支持OLE技术。

2.9 动态连接库

Win32动态连接库(DLL)中的全局数据可以被调用DLL的所有进程共享,这就又给进程间通信开辟了一条新的途径,当然访问时要注意同步问题。

虽然可以通过DLL进行进程间数据共享,但从数据安全的角度考虑,我们并不提倡这种方法,使用带有访问权限控制的共享内存的方法更好一些。

2.10 远程过程调用

Win32 API提供的远程过程调用(RPC)使应用程序可以使用远程调用函数,这使在网络上用RPC进行进程通信就像函数调用那样简单。RPC既可以在单机不同进程间使用也可以在网络中使用。

由于Win32 API提供的RPC服从OSF-DCE(Open Software Foundation Distributed Computing Environment)标准。所以通过Win32 API编写的RPC应用程序能与其它操作系统上支持DEC的RPC应用程序通信。使用RPC开发者可以建立高性能、紧密耦合的分布式应用程序。

2.11 NetBios函数

Win32 API提供NetBios函数用于处理低级网络控制,这主要是为IBM NetBios系统编写与Windows的接口。除非那些有特殊低级网络功能要求的应用程序,其它应用程序最好不要使用NetBios函数来进行进程间通信。

2.12 Sockets

Windows Sockets规范是以U.C.Berkeley大学BSD UNIX中流行的Socket接口为范例定义的一套Windows下的网络编程接口。除了Berkeley Socket原有的库函数以外,还扩展了一组针对Windows的函数,使程序员可以充分利用Windows的消息机制进行编程。

现在通过Sockets实现进程通信的网络应用越来越多,这主要的原因是Sockets的跨平台性要比其它IPC机制好得多,另外WinSock 2.0不仅支持TCP/IP协议,而且还支持其它协议(如IPX)。Sockets的唯一缺点是它支持的是底层通信操作,这使得在单机的进程间进行简单数据传递不太方便,这时使用下面将介绍的WM_COPYDATA消息将更合适些。

2.13 WM_COPYDATA消息

WM_COPYDATA是一种非常强大却鲜为人知的消息。当一个应用向另一个应用传送数据时,发送方只需使用调用SendMessage函数,参数是目的窗口的句柄、传递数据的起始地址、WM_COPYDATA消息。接收方只需像处理其它消息那样处理WM_COPY DATA消息,这样收发双方就实现了数据共享。

WM_COPYDATA是一种非常简单的方法,它在底层实际上是通过文件映射来实现的。它的缺点是灵活性不高,并且它只能用于Windows平台的单机环境下。

2. Excel出现OLE

这个是OLE链接出了问题,比较麻烦。

一般我都是用export命令将需要的CAD输出为BMP或WMF格式再插入excel中,这样也能解决黑色背景的问题

3. word和excel支持ole技术吗

excel是Microsoft Excel程序的表格文件。

Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。在1993年,作为Microsoft Office的组件发布了5.0版之后,Excel就开始成为所适用操作平台上的电子制表软件的霸主。

Microsoft Office是一套由微软公司开发的办公软件套装,它可以在Microsoft Windows、Windows Phone、Mac系列、iOS和Android等系统上运行。与其他办公室应用程序一样,它包括联合的服务器和基于互联网的服务。从2007版的Office被称为“Office System”而不叫“Office Suite”,反映出它们包括服务器的事实。

扩展资料:

Excel最初出现于九十年代早期,最初是一个推广名称,指一些以前曾单独发售的软件的合集。当时主要的推广重点是购买合集比单独购买要省很多钱。最初的 Office 版本只有 Word、Excel 和 Powerpoint;另外一个专业版包含 Microsoft Access;随着时间的流逝,Office 应用程序逐渐整合,共享一些特性,例如拼写和语法检查、OLE 数据整合和微软 Microsoft VBA(Visual Basicfor Applications)脚本语言。

4. ole excel

可能原因与解决办法: 这是因为Excel和如金山词霸、PDF阅览器等其他软件商的兼容性问题造成的,这些软件会自动在Excel中装插件、加载项,但是有时候不成功。 解决办法是,调出任务管理器结束相关进程即可解决。

5. 支持ole技术的程序

  OLE 控件(现在称为ActiveX 控件)OLE(发音为“oh—Lay”)的全称是:Object Linking and Embedding(对象链接与嵌入)。可以在 Windows 应用程序的对话框中使用,或在万维网的 HTML 页中使用。

即为对象的链接与嵌入

  也可以指把提供嵌入及链接对象的应用程序,称为服务器应用程序(Servers),在VB中也称为"对象应用程序"。

  把接受嵌入及链接对象的应用程序,称为客户(Clients)应用程序,在VB中也称为"控制应用程序"。

  名词解释:

  VB:

  Visual Basic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。

  语言特性

  VB 的中心思想就是要便于程序员使用,无论是新手或者专家。VB使用了可以简单建立应用程序的 GUI 系统,但是又可以开发相当复杂的程序。VB 的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组件的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本里面 VB 程序的性能问题一直被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争论已经越来越少。

  窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。举个例子来说:窗体的大小改变事件中加入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。

  VB 的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来提供弹出功能。

  VB 的组件既可以拥有用户界面,也可以没有。这样一来服务器端程序就可以处理增加的模块。

  VB 使用参数计算的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组件的出现,程序员可以选用自己需要的扩展库。和有些语言不一样,VB 对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写敏感的,但是可以关闭这个功能。

  VB 使得大量的外界控件有了自己的生存空间。大量的第三方控件针对 VB 提供。VB 也提供了建立、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。

6. excel ole操作

①EMBED的语法

{ EMBED ClassName [Switches] }

插入支持 OLE 的其他应用程序所创建的对象。使用“插入”菜单中的“对象”命令、“编辑”菜单中的“选择性粘贴”命令或工具栏

(工具栏:包含可用于执行命令的按钮和选项的栏;要显示工具栏,请按 Alt 然后按 Shift+F10。)按钮插入对象(如 Microsoft Excel

工作表对象)时,Microsoft Word 将插入 EMBED 域。

OLE说明:一种可用于在程序之间共享信息的程序集成技术。所有 Office 程序都支持 OLE,所以可通过链接和嵌入对象共享信息。)

“域”对话框中没有 EMBED 域,不能手动插入该域。但可以直接修改已有的 EMBED 域中的开关;

参数说明:

ClassName:容器应用程序名,如 Microsoft Excel。不能修改此指令。

开关

\*MERGEFORMAT

将上次结果所用的尺寸和裁剪应用于新的结果。如果在更新域时要保持上次应用的尺寸和裁剪,请不要从域中删除此开关。

②EMBED实例说明

1、插入图片

下列域显示嵌入

(嵌入:将某程序创建的信息(例如图表或公式)插入其他程序中。嵌入对象后,该信息即成为文档的一部分。对该对象所作的任何更改都将在文档中反应出来。)文档中的“Microsoft

图形”对象。

{ EMBED MSGraph.Chart.8 \* MERGEFORMAT }

2、插入CAD图形

例如: 你在 autocad 复制一图形,在 excel 做粘贴动作就出现如下

=EMBED("AutoCAD.Drawing.16","") 这样可以实现 CAD 和 EXCEL 切换编辑

在网页可做成动态链接。

③总体来讲EMBED

我们不需要理会EMBED用法及其参数,因为EMBED参数不能修改。

我们只需要懂得如何利用就足够了,总的来说,用法为:

执行菜单操作“插入”→“对象”;弹出对话框,在对话框中切换到“由文件创建”,之后,点击“浏览”按钮,选择好对象所在的文件路径及名称,即可将对象插入或嵌入到表格中。这样,在对应的单元格的FX函数输入框中,就自然会出现

=EMBED("","") 了。

比如,当您通过上述的方法,将PDF文件嵌入到excel中,往后,如果需要查看该PDF文件,那么,只需要点击一下该对象,自然就会自动打开PDF目标文件进行浏览了。

-

7. excel ole对象

控制ole值,ObjectLinkEmbed对象的链接和嵌入COM的早期型式,好像式第一代的使用OLE可以处理计算机系统中全部文件对象.如声音,图片,WORD文档,EXCEL文档,是这么控制ole值。

8. OLE功能

首先了解一下VBA是啥:

是微软公司开发出来的一种事件驱动编程语言,他的作用就是扩展office应用程序,使得我们使用office的时候效率更高。

VBA的用途:

1、步骤简化:如可以通过一个按钮实现多个步骤的操作,迅速省力完成大量重复操作。

2、权限划分:设置登陆对话框可以设置不同操作人对每个表的访问权限和操作权限。同时保护数据不被其他人员修改和想看。

3、复杂的筛选排序:excel内只是提供了比较简单的一些筛选和排序功能,如果我们需要一些多条件复杂的筛选和排序,就可以用VBA来帮我们解决问题。如:比划排序。

4、自动执行任务:我们可以编写指定时间或者指定条件下执行某些操作。

5、保证数据准确性:可以通过VBA设置对输入的数据进行限制,可以防止用户不小心录入不符号内容的数据。如:大小写规范,小数点规范,标点符号规范。

6、扩展Excel没有的功能:警告对话框,修改、删除、生成文件等一些操作。甚至还可以操作注册表。

7、开发专业程序:可以利用VBA把EXCEL文件开发成专业的程序,如人事的人员管理系统,财务报表系统,学生信息管理系统等。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片