Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

星期二, 9月 18, 2007

對Word文件進行操作


使用CreateOleObject方法對WORD文檔操作具有先天所具備的優勢,與delphi所提供的那些控件方式的訪問相比,CreateOleObject方法距離WORD核心的操作「更近」,因為它直接使用OFFICE所提供的VBA語言對WORD文檔的操作進行編程。

作法很簡單,在視窗Form上放置了一個TEdit和一個TButton,每按一次按鈕,就會自動把Edit中的內容添加在背景作業word文檔中,當程序關閉時文件自動儲存至當前程序目錄中。

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Comobj, WordXP, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
//全域變數
FWord: Variant;
FDoc: Variant;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
FWord.Selection.TypeParagraph; //換行
FWord.Selection.TypeText(Text := form1.Edit1.Text);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
//首先創建對象,如果出現異常就作出提示
try
FWord := CreateOleObject('Word.Application'); //創建Word物件
FWord.Visible := False; //WORD程序的執行是否可見,值為False時程序在後台執行
except
ShowMessage('創建word對像失敗!');
Exit;
end;

//先在打開的Word中創建一個新的頁面,然後在其中鍵入"Hello,"+回車+"World!"
try
FDoc := FWord.Documents.Add;
FWord.Selection.TypeText(Text := 'Hello,');
FWord.Selection.TypeParagraph; //換行
FWord.Selection.TypeText(Text := 'World! ');
except
on e: Exception do
ShowMessage(e.Message);
end;
end;
//在程序關閉時把文件內容保存到當前目錄中,並以test.doc命名,同時關閉WORD程序
procedure TForm1.FormDestroy(Sender: TObject);
begin
FDoc.SaveAs(ExtractFilePath(application.ExeName) +'test.doc'); //存檔
FWord.Quit; //離開
FWord := Unassigned; //取消分派
end;
end.

沒有留言: