Google
 
资源下载 | 发布源码资源

已解决问题
我想在 Delphi 程序中直接调用 Word 文档并使用 Word 的功能...
 
问题补充: 我想在 Delphi 程序中直接调用 Word 文档并使用 Word 的功能,这个程序该怎样编? 该用什么控件呢?
提问者:tomore  提问时间:08-10-20 20:29  
 最佳答案
 的答案  ( 采纳时间: 70-01-01 08:00 )

 评论  回答时间: 70-01-01 08:00 
其他答案 (1)

方法一: 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 编程帮助。
0 评论  回答时间: 1224556001 


关于我们 - 广告服务 - 联系我们 - 网站声明 - Archiver - WAP - TOP
Copyright (c) 2001-2010 kkbar.com. All rights reserved.  京ICP备10020589号