?? 讓delphi與office聯(lián)姻 (2000年12月6日).txt
字號(hào):
讓DELPHI與OFFICE聯(lián)姻 (2000年12月6日)
本站更新 分類: 作者:www.net990.net 推薦: 閱讀次數(shù):859
(http://www.codesky.net)
--------------------------------------------------------------------------------
由于微軟的Office系列的完善的功能;與Windows和IE的緊密集成以及強(qiáng)大的擴(kuò)展能力,它實(shí)際上已經(jīng)成為事實(shí)上的Windows下辦公軟件的標(biāo)準(zhǔn),我們知道在VB中可以建立各種Office對(duì)象(Word、Excel)并控制這些對(duì)象編輯、打印、保存文檔以及控制執(zhí)行Office中的很多操作。象這樣在VB中建立并控制Office對(duì)象是十分有用的,例如你可以將一個(gè)或者一批數(shù)據(jù)庫(kù)自動(dòng)輸入到Word或者Excel中并保存,再通過Outlook將文檔分發(fā)給其它同仁。
過去,這只有通過VB才能實(shí)現(xiàn)的,但是現(xiàn)在Delphi5也提供了這樣強(qiáng)大的對(duì)象組。利用Delphi也可以利用Office資源了。
打開Delphi,滾動(dòng)Compent Palette到Servers頁(yè),就可以看到很多熟悉的控件圖標(biāo),這些就是Office組件的控件。Delphi 5中對(duì)應(yīng)Office的組件包括了Word、Excel、Access、PowerPoint和Outlook可以說是十分的全面。不過要使用這些組件首先要保證你的系統(tǒng)中安裝了Office 97或以上的 版本。
下面首先來說以下Office組件的基本使用方法Delphi中對(duì)于Office中不同的組件,首先要建立一個(gè)Application對(duì)象,例如要控制Word,首先要建立TWordApplication對(duì)象,然后再將諸如TWordDocument等Word對(duì)象通過ConnectTo方法連接到TWordApplication對(duì)象上。對(duì)于其它的Excel、Outlook等也是如此。
下面我通過具體的范例來說明對(duì)Delphi中Office對(duì)象的控制,即如何將文字輸出到Word中進(jìn)行簡(jiǎn)單的排版并保存和打印輸出。
首先建立一個(gè)新的工程,在Form1中加入三個(gè)TButton對(duì)象、一個(gè)TMemo對(duì)象、一個(gè)TWordApplication對(duì)象、一個(gè)TWordDocument對(duì)象、一個(gè)TWordFont對(duì)象。下面是Form1的代碼:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Word97, OleServer,Clipbrd;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
WordApplication1: TWordApplication;
WordDocument1: TWordDocument;
WordFont1: TWordFont;
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Caption := '插入到Word';
Button2.Caption := '打印';
Button3.Caption := '退出';
Button2.Enabled :=False;
Button3.Enabled :=False;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Template,NewTemplate,ItemIndex:OleVariant;
procedure setfont;
begin
WordFont1.ConnectTo(WordDocument1.Sentences.Get_Last.Font);
WordFont1.Bold := 1;
WordFont1.Italic := 1;
WordFont1.shadow := 1;
WordFont1.Size := 12;
end;
begin
try
Template := EmptyParam;
NewTemplate := True;
ItemIndex := 1;
try
Wordapplication1.Connect;
except
MessageDlg('無(wú)法連接,也許沒有安裝Word', mtError, [mbOk], 0);
Abort;
end;
Wordapplication1.Visible := False;
WordApplication1.Caption := 'Delphi Word';
//建立一個(gè)新文檔
Template := EmptyParam;
NewTemplate := False;
WordApplication1.Documents.Add(Template, NewTemplate);
//建立WordDocument連接
WordDocument1.ConnectTo(WordApplication1.Documents.Item(ItemIndex));
//因?yàn)閃ord進(jìn)行拼寫檢查需要很多時(shí)間,所以首先關(guān)閉檢查
WordApplication1.Options.CheckSpellingAsYouType := False;
WordApplication1.Options.CheckGrammarAsYouType := False;
//將Memo1的內(nèi)容拷貝到Word中
SetFont;
WordDocument1.Range.InsertAfter('Memo1的文本: ' + #13+Memo1.Text + #13);
Button2.Enabled :=True;
Button3.Enabled :=True;
Button1.Enabled :=False;
except
on E: Exception do
begin
ShowMessage(E.Message);
WordApplication1.Disconnect;
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
WordDocument1.PrintOut;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
SaveChanges,OriginalFormat,RouteDocument,SavePath: OleVariant;
begin
SaveChanges := WdDoNotSaveChanges;
OriginalFormat := UnAssigned;
RouteDocument := UnAssigned;
try
SavePath:='c:\samp.doc';
WordDocument1.SaveAs(SavePath);
WordDocument1.Close;
WordDocument1.Disconnect;
WordApplication1.Quit(SaveChanges, OriginalFormat, RouteDocument);
WordApplication1.Disconnect;
close;
except
on E: Exception do
begin
Showmessage(E.Message);
WordApplication1.Disconnect;
end;
end;
end;
end.
運(yùn)行程序,在Memo1中輸入一些文字,點(diǎn)擊“插入到Word”按鈕,然后點(diǎn)擊“打印”按鈕就可以將由Memo1輸入到Word中的文本打印出來。點(diǎn)擊“退出”按鈕就可以將文檔保存到 c:\samp.doc 中然后關(guān)閉與Word的連接并退出。
由上面的范例可以看到,Delphi對(duì)于Office組件的編程同VB是有一些相似的,由于不知道什么原因,Delphi并沒有提供Office組件的幫助文檔。上面的程序我是一點(diǎn)點(diǎn)摸索出來的,但是如果你掌握了Office組件的編程技巧,加上Delphi強(qiáng)大的功能,一定會(huì)使你的程序如虎添翼的。
以上程序在Windows98、Windows2000,Delphi5.0,Office2000下運(yùn)行通過。
Welcome to www.net990.net ,2000,7,10
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -