乔山办公网我们一直在努力
您的位置:乔山办公网 > office365 > 如何用<em>delphi</em>调用<em>word</em>打开一

如何用<em>delphi</em>调用<em>word</em>打开一

作者:乔山办公网日期:

返回目录:office365


百科名片上有这个文件有全文的可以帮你。谢谢(其他内容你自己查看)

Delphi,是Windows平台下著名的快速应用程序开发工具(Rapid Application Development,简称RAD)。它的前身,即是DOS时代盛行一时的“BorlandTurbo Pascal”,最早的版本由美国Borland(宝兰)公司于1995年开发。主创者为Anders Hejlsberg。经过数年的发展,此产品也转移至Embarcadero公司旗下。Delphi是一个集成开发环境(IDE),使用的核心是由传统Pascal语言发展而来的Object Pascal,以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。

使用函数 ShellExecute
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory: PChar; ShowCmd: Integer): HINST; stdcall;
必须引用shellapi.pas单元
uses ShellAPI;

begin
...
ShellExecute(Handle,'open','winword','D:\test.doc','',SW_SHOWNORMAL);
// winword 报错就写成 word
...
end;
摘 要:总结了四种Delphi访问和控制Word的方法,简单分析e799bee5baa6e79fa5e98193e59b9ee7ad94362了Word的对象层次模型,重点阐述了利用Delphi中Server组件操纵Word的实现方法.并就实现Delphi对Word文档直接操作进行了探讨和分析。
关键词:Delphi Word 组件 层次模型
中图分类号 TP317.2 文献标识码 B 文章编号:1002-2422(2007)03-0060-02

1 Delphi访问和控制Word的方法

1.1 通过导入类型库和直接访问COM接口控制Word
由于引入了类型库,对自动化对象的控制比较灵活,并且在设计期间可以对代码进行类型检查,因此性能较好,但实现起来比较复杂,现在已经很少使用。

1.2 使用TOleContainer组件调用Word
在Delphi中,使用TOleContainer的Run方法就可以直接启动Word文档,但此方法不能通过Delphi控制Word文档,不能灵活操作Word。

1.3 使用CreateOleObieet方式控制Word
是使用CreateOleObject方式创建并调用Word文件,难点在于没有Delphi代码提示.需要自己编写所有对异常事件的处理过程,可能编写时探索性知识比较多。

1.4使用Delphi提供的Servers组件控制Word
Delphi组件面板上有一组Servers组件,能非常方便地访问和控制Word,在编程时能够实现友好的代码提示。本文使用此方法来介绍在Delphi开发环境中如何实现对Word文档的处理。

2 Word的对象模型

Word2000的层次结构比较复杂,包括100多个对象,各对象处于一个完整的体系结构且相互联系,整个Word2000对象可以看成一个层次结构,每一个对象处于一个特定的对象层次中,其中Application对象处于最高层,除Application外的其它对象都是高层次的对象派生,派生的对象处于原对象的下层,常用的Word 2000对象。
(1)Application对象:位于Word对象的最高层,代表整个Word应用程序。
(2)Document对象:代表一篇Word文档。
(3)Selection对象:代表窗口中所选定的内容。
(4)Range对象:由Document对象派生,代表Word文档中的某个范围。
(5)Font对象:由Selection对象派生,包含各种字体属性。
(6)ParagraphFormat对象:由Selection对象派生,代表所有段落格式。

3 通过Servers组件操作Word

首先通过WordApliation组件实现Delphi与Word的无缝联接,然后用OLE技术借助VBA来控制Word对象,其过程主要包括联结Word服务器、创建或打开文稿、编辑文档、格式设置、保存与打印设置、断开Word服务器等步骤。
从Servers组件页中拖一个TWordApplication组件、一个TWordDocument组件放到窗体上,分别命名为WordApp、WordDoc。
(1)联结Word服务器
WordApp.AutoConnect:=True;
WordApp.ConneetKind:=ckRunningorNew;
WordApp.Connect;
WordApp.Visible:=true;
(2)文稿的创建与打开
与Word 2000建立联系后即可以新建或打开Word文档,其方法如下:
WordApp.Documents.Add(Template,NewTemplate,DocumentType,visi-ocLentType'Visi—ble);
若打开已有的Word文档,可使用:
WordApp.Documents.Open(FileName,Confirm Conversions,ReadOnly,PassWordDocument,PasswordTemplate,Revent,WfitePasswordDecu-ment,WritePassWordTemplate,Format,Encoding,Visible)
WordDoe.ConnectTo(WontApp.Documents.Item(itemlndex)):

方法一:
  1) 从 WORD.EXE 中导入 WORD 的 Type Library
  2) var wd : _Application;
   wdt : Table;
   dot1,FileName: OleVariant;
  begin
   dot1 := 'c:\abc.dot';
   wd := coApplication_.Create;
   wd.Documents.Add(dot1, EmptyParam);
   wdt := wd.ActiveDocument.Tables.Item(1);
   wdt.Cell(1,3).Range.Text := 'Hello!';
   //以下是保存和关闭文档及 Word, 可以不关,下面两个例程略过此步。
   //EmptyParam 用来代替不使用的参数。
   FileName := 'c:\test.doc';
   wd.ActiveDocument.SaveAs(FileName,EmptyParam,EmptyParam,
   EmptyParam,
     EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
     EmptyParam,
     EmptyParam);
   wd.ActiveDocument.Close(EmptyParam,EmptyParam,EmptyParam);
   wd.Quit(EmptyParam,EmptyParam,EmptyParam);
  end;

  方法二:
  var
   Ole: Variant;
   NewDoc: Variant;
   DocTable: Variant;
  begin
  //方法二的参数可以直接使用 Delphi 的数据类型。其它方法只能使用 OleVariant 类型.
    Ole := CreateOleObject('Word.Application');
    Ole.Application.Visible := true;
    NewDoc := Ole.Documents.Add('C:\abc.dot');
    DocTable := NewDoc.Tables.Item(1);
    DocTable.Cell(1,3).Range.Text := 'Hello!';
  //设置Variant对象为UnAssigned来释放该e799bee5baa6e79fa5e98193e78988e69d83335对象的引用。
    NewDoc := UnAssigned;
    DocTable := UnAssigned;
    Ole := UnAssigned;
  end;

  方法三:使用 Server 页的 TWordApplication 控件,同理,你可以用里头的所有控件。Ole 为TWordApplication控件名称。
  var
   NewDoc: Variant;
   DocTable: Variant;
  o: OleVariant;
  begin
   o := 'c:\abc.dot';
   NewDoc := Ole.Documents.Add(o,EmptyParam);
   DocTable := NewDoc.Tables.Item(1);
   DocTable.Cell(1,3).Range.Text := 'Hello!';
   NewDoc := UnAssigned;
   DocTable := UnAssigned;
  end;

推荐用方法一和方法三。因为方法二不提供类型参数检查,也因为方法二的接口调用效率低。程序中所使用的属性和方法资料可以在 Office 的 VBA 帮助中查到。需要者请在安装 Office 时选择安装 VBA 编程帮助。

相关阅读

  • 如何用<em>delphi</em>调用<em>word</em>打开一

  • 乔山办公网office365
  • 百科名片上有这个文件有全文的可以帮你。谢谢(其他内容你自己查看)Delphi,是Windows平台下著名的快速应用程序开知发工具(Rapid Application Development,简称RAD)。它的道前身,即是DOS时代
关键词不能为空
极力推荐
  • 软件<em>激活office</em>2013后又装了<em>Visio</e

  • 直接单独下百载一个安装就可以啦1、首先,按照提示一步步安装度2、安装完成后,运行visio 20133、点击文件中的账户,点击需要激版活,4、之后你就弹出让你输入激活码,输权入进去就

ppt怎么做_excel表格制作_office365_word文档_365办公网