对几种方法的难易程度的判别

a.通过Delphi的控件TOleContainer 将Word嵌入

这是最简单的Ole嵌入,能够直接将Word文档调用,只需要使用ToleContainer.Run就可以

将Word文 
档直接启动。且这样启动的Word文档与Delphi程序是一个整体(从界面上看),但是它存

在不可克 
服的缺点,即不能通过Delphi控制Word文档,也就不能实现将灵活操纵Word的目的。

b.使用Delphi提供的Servers控件调用Word,使用Word的属性 
使用Delphi的Servers控件来操纵Word,在编程时Delphi能够实现代码提示,总体上看能

够较好的实 
现Delphi对Word的控制,但是还有一些Word的功能不能在Delphi中调用(比如自己编写的

VBA宏代码)。 
且实现功能时本来在VBA代码中可选则参数在Delphi调用的时候必须添加,否则,连编译

都不能通过。 
本方式启动的Word与Delphi程序分属两个窗体。 
此办法仅能作为一个参考。

c.通过真正的Com技术,将Office软件目录中文件MSWORD9.OLB中的类库全部导入Delphi中

, 
利用Com技术编程 
利用真正的Com技术,将MsWord9.OLD文件类库导入,然后利用Com技术进行使用。 
整体上类似使用Delphi的Servers控件,稍微比Servers控件麻烦,优缺点与Servers控件

相同。

d.使用CreateOleObject将启动Word,然后以Ole方式对Word进行控制。 
本办法是使用以CreateOleObjects方式调用Word,实际上还是Ole,但是这种方式能够真

正做到完全 
控制Word文件,能够使用Word的所有属性,包括自己编写的VBA宏代码。 
与Servers控件和com技术相比,本方法能够真正地使用Word的各种属性,和在VBA中编写

自己的代码 
基本一样,可以缺省的代码也不需要使用。 
本方式启动的Word与Delphi程序分属两个窗体。 
缺点是使用本方法没有Delphi代码提示,所有异常处理均需要自己编写,可能编写时探索

性知识比较多。

[b]五、Word命令宏的详细描述[/b] 
Word本身的命令函数包含很多,但是无论是word联机帮助还是MSDN帮助,都没有这方面的

介绍,因此只能 
凭自己的实验取探索,初步探测的函数如下: 
宏名 解释 注释 
FileNew 新建 
FileNewDefault 新建空白文档 
FileSaveAs 另存为 
FileOpen 打开 
FileClose 关闭 
FilePrint 打印 
FilePrintPreview 打印预览 
ToolsCustomize 工具栏里面的自定义 
ToolsOptions 工具选项 
ToolsRevisions 突出显示修订 
ToolsReviewRevisions 接受或拒绝修订 
ToolsRevisionMarksAccept 接受修订 
ToolsRevisionMarksReject 拒绝修订 
ToolsRevisionMarksToggle 修订 
ToolsMacro 宏 
ToolsRecordMacroToggle 录制新宏 
ViewSecurity 安全性 
ViewVBCode 查看VB编辑器环境 
FileTemplates 模板和可加载项 
ToolsProtectUnprotectDocument 解除对文档的保护 
InsertHyperlink 插入超级链接 
EditHyperlink 编辑超级链接 
DeleteHyperlink 删除超级链接 
EditLinks 查看、删除链接 
EditPasteAsHyperlink 粘贴超级链接 
FormatStyle 样式 
EditBookMark 书签

[b]一、Delphi程序启动Word[/b] 
采用CreateOleObjects的方法来启动Word,调用VBA代码,具体实现过程为: 
首先使用GetActiveOleObject('Word.Application')判断当前内存中是否存在Word程序,如果存在, 则直接连接,如果没有Word程序,则使用CreateOleObject('Word.Application')启动Word

[b]二、Delphi程序新建Word文稿[/b] 
格式:WordDocuments.Add(Template,NewTemplate,DocumentType,Visible) 
Template: 使用模板的名称, 
NewTemplate: 新建文档的类型,True表示为模板,False表示为文档 
DocumentType: 文档类型,默认为空白文档 
Visible: 打捞的窗口是否可见

举例:Doc_Handle:=Word_Ole.Documents.Add

(Template:='C:\Temlate.dot',NewTemplate:=False);

[b]三、Delphi程序打开Word文稿[/b] 
格式:WordDocuments.Open

(FileName,ConfirmConversions,ReadOnly,PassWordDocument,

PasswordTemplate,Revent,WritePasswordDocument,WritePassWordTemplate,Format,Encoding,
Visible)

FileName: 文档名(包含路径) 
Confirmconversions: 是否显示文件转换对话框 
ReadOnly: 是否以只读方式打开文档 
AddToRecentFiles: 是否将文件添加到"文件"菜单底部的最近使用文件列表中 
PassWordDocument: 打开此文档时所需要的密码 
PasswordTemplate: 打开此模板时所需要的密码 
Revert: 如果文档已经,是否重新打开文档 
WritePasswordDocument: 保存对文档更改时所需要的密码 
WritePasswordTemplate: 保存对模板进行更改时所需要的密码 
Format: 打开文档时所需使用的文件转换器 
Encoding: 所使用的文档代码页 
Visible: 打开文档的窗口是否可见

举例: 
Doc_Handle:=Word_Ole.Documents.open(FileName:=Doc_File,ReadOnly:=False, 
AddToRecentFiles:=False);

[b]四、Delphi程序保存Word文稿[/b] 
格式:WordDocuments.SaveAs(FileName, FileFormat, LockComments, Password, AddToRecentFiles, WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts, 
SaveNativePictureFormat, SaveFormsData, 
SaveAsAOCELetter)

FileName: 文件名。默认为当前文件夹和文件名。 
FileFormat 文档保存的格式。 
LockComments 如果为 True,则此文档只允许进行批注。 
Password 打开文档时的口令。 
AddToRecentFiles 如果为True,则将文档添至"文件"菜单中最近使用的文档列表中

delphi控制 word的几种方法--转的更多相关文章

  1. [转]Delphi调用cmd的两种方法

    delphi调用cmd的两种方法vars:string;begins:='cmd.exe /c '+edit1.Text+' >c:\1.txt';winexec(pchar(s),sw_hid ...

  2. nodejs高并发大流量的设计实现,控制并发的三种方法

    nodejs高并发大流量的设计实现,控制并发的三种方法eventproxy.async.mapLimit.async.queue控制并发Node.js是建立在Google V8 JavaScript引 ...

  3. delphi控制word 标题 字符和位置

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  4. C#通过模板导出Word的两种方法(超简单)

    方法一:使用Office的组件 使用该方法必须要安装Office 1.制作Word模板 在需要填充内容的地方增加标识符号,方便之后替换使用,例如 [项目名称],其中[]符号和中间的文字可根据个人情况进 ...

  5. C# 加载Word的3种方法

    本次经验内容分享通过C#程序来加载Word文档的3种不同方法.分别是: 1. 加载本地Word文档 2. 以只读模式加载Word文档 3. 从流加载Word [程序环境] Windows 10 Vis ...

  6. .net导出Word的一种方法

    由于ActiveX控件只支持IE(好像FF可以通过安装插件支持),所以js导出word的方式就比较局限 可是如果当页面经过js修改以后,.net是无法获取到的,所以要通过js获取到最新的html并传给 ...

  7. JAVA生成word的几种方法对比

    首先介绍几种java导出word方案 1.Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.使用Jacob自带的DLL动态链接库,并通过JNI的方式实现 ...

  8. 用Delphi实现文件下载的几种方法(三种使用控件的方法)

    有个API就是UrlDownloadToFile.不仅如此,Delphi的一些控件也可以轻松实现下载,如NMHTTP,指定NMHTTP1.InputFileMode := ture; 指定Body为本 ...

  9. am335x gpio 控制的另一种方法

    #include <linux/gpio.h>  #include <linux/module.h>  #include <linux/kernel.h>  #in ...

随机推荐

  1. CentOS 7.0 安装配置LAMP服务器方法(Apache+PHP+MariaDB)(转)

    转自:http://www.jb51.net/os/188488.html 作者:佚名 字体:[增加 减小] 来源:osyunwei  准备篇: CentOS 7.0系统安装配置图解教程 http:/ ...

  2. jvm 基础

    1. JDK 包含 java 程序设计语言,JVM, Java API类库. java 开发最小环境 2. JRE : Java API类库中java se API 子集和java 虚拟机(HotSp ...

  3. Activiti 5.18启动流程到完成所有任务之间的数据库变化(转)

    来写一下Activiti 5.18版本从启动流程到整个流程结束之间数据库表的变化 先给出流程图,很简单的流程,就是两个UserTask: 代码如下: DeploymentBuilder builder ...

  4. 将hibernate框架融入到spring框架中

    第一步:首先创建表: create table  user( id int(2) primary key,name varchar(20),password varchar(20)); 第二步:建立d ...

  5. 用EventLog Analyzer的预定义报表和告警来进行Syslog管理

    用EventLog Analyzer的预定义报表和告警来进行Syslog管理 系统日志(Syslog)管理是几乎所有企业的重要需求.系统管理员将syslog看作是解决网络上系统日志支持的系统和设备性能 ...

  6. kbmmw 中虚拟文件操作入门

    kbmmw 中一直有一个功能,但是基本上都没有提过,但是在实际应用中,却非常有用,这个功能就是 虚拟文件包功能,他可以把一大堆文件保存到一个文件里面,方便后台管理. kbmmw 的虚拟文件在单元kbm ...

  7. MyBatis 实现新增

    MyBatis实现新增 1.概念学习:(角度不同) 1.1 功能:从应用程序角度出发,软件具有哪些功能 1.2 业务:完成功能时的逻辑,对应Service中一个方法 1.3 事务:从数据库角度出发,完 ...

  8. Explain结果解读与实践

    MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP).这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL 语句的.这条命令并没有提供任何调整建议,但它能够提供重要的信息 ...

  9. JS页面跳转大全

    所谓的js页面跳转就是利用javesrcipt对打开的页面ULR进行跳转,如我们打开的是A页面,通过javsrcipt脚本就会跳转到B页面.目前很多垃圾站经常用js跳转将正常页面跳转到广告页面,当然也 ...

  10. zk可视化工具

    也是无意中接触到zk,搞得有点头大,之前都是通过crt连通服务后,在服务上通过命令去查看节点下的数据的,十分的不方便,后来发现了可视化工具这玩意儿还真的是好用,看节啊点下的数据啥的一目了然,我用过的有 ...