我想在Delphi 里面直接调用Word的文档并使用Word 的功能,这个程序怎样搞?

我想在Delphi 里面直接调用Word的文档并使用Word 的功能,这个程序怎样搞?,第1张

 

先从

WORD.EXE

中导入

WORD

Type

Library

 然后

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

方法一:

  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来释放该对象的引用。

  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 编程帮助。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/11270513.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存