使用CreateOleObject方法对WORD文档操作具有先天所具备的优势
与delphi所提供的那些控件方式的访问相比
CreateOleObject方法距离WORD核心的操作
更近
因为它直接使用OFFICE所提供的VBA语言对WORD文档的操作进行编程
以下是我在本机上所做的实验机器软件配置如下
Windows XP+delphi+OFFICE
这个程序很简单在页面上放置了一个edit和一个button每单击一次按钮就会自动把edit中的内容添加在后台中的word文档中程序关闭时文件自动保存在当前程序的主目录中
unit main;
interface
//如果要使用CreateOleObject的办法对WORD文档进行操作应该在uses
//语句中加入Comobj声明和WordXP声明
uses
Windows Messages SysUtils Variants Classes Graphics Controls Forms
Comobj WordXP Dialogs StdCtrls;
type
TForm = class(TForm)
Button: TButton;
Edit: TEdit;
procedure ButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
// procedure ButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form: TForm;
//把这两个变量声明为全局变量
FWord: Variant;
FDoc: Variant;
implementation
{$R *dfm}
procedure TFormButtonClick(Sender: TObject);
begin
FWordSelectionTypeParagraph;
FWordSelectionTypeText(Text := formEditText);
end;
procedure TFormFormCreate(Sender: TObject);
begin
//首先创建对象如果出现异常就作出提示
try
FWord := CreateOleObject(WordApplication);
//WORD程序的执行是否可见值为False时程序在后台执行
FWordVisible := False;
except
ShowMessage(创建word对象失败!);
Exit;
end;
//先在打开的Word中创建一个新的页面然后在其中键入Hello+回车+World!
try
FDoc := FWordDocumentsAdd;
FWordSelectionTypeText(Text := Hello);
FWordSelectionTypeParagraph;
FWordSelectionTypeText(Text := World! );
except
on e: Exception do
ShowMessage(eMessage);
end;
end;
//在程序关闭时把文件内容保存到当前目录中并以testdoc命名
//同时关闭WORD程序
procedure TFormFormClose(Sender: TObject; var Action: TCloseAction);
begin
FDocSaveAs(ExtractFilePath(applicationExeName) +testdoc);
FWordQuit;
FWord := Unassigned;
end;
end
此外对OFFICE其他文件的操作都比较类似不在赘述通过对WORD文件中更复杂的VBA宏的引用这个方法还可以完成更复杂的文档操作