胡小紅 游新娥
摘要:總結(jié)了四種Delphi訪問和控制Word的方法,簡(jiǎn)單分析了Word的對(duì)象層次模型,重點(diǎn)闡述了利用Delphi中Server組件操縱Word的實(shí)現(xiàn)方法.并就實(shí)現(xiàn)Delphi對(duì)Word文檔直接操作進(jìn)行了探討和分析。
關(guān)鍵詞:DelphiWord組件層次模型
中圖分類號(hào)TP317.2文獻(xiàn)標(biāo)識(shí)碼B文章編號(hào):1002-2422(2007)03-0060-02
1Delphi訪問和控制Word的方法
1.1通過導(dǎo)入類型庫和直接訪問COM接口控制Word
由于引入了類型庫,對(duì)自動(dòng)化對(duì)象的控制比較靈活,并且在設(shè)計(jì)期間可以對(duì)代碼進(jìn)行類型檢查,因此性能較好,但實(shí)現(xiàn)起來比較復(fù)雜,現(xiàn)在已經(jīng)很少使用。
1.2使用TOleContainer組件調(diào)用Word
在Delphi中,使用TOleContainer的Run方法就可以直接啟動(dòng)Word文檔,但此方法不能通過Delphi控制Word文檔,不能靈活操作Word。
1.3使用CreateOleObieet方式控制Word
是使用CreateOleObject方式創(chuàng)建并調(diào)用Word文件,難點(diǎn)在于沒有Delphi代碼提示.需要自己編寫所有對(duì)異常事件的處理過程,可能編寫時(shí)探索性知識(shí)比較多。
1.4使用Delphi提供的Servers組件控制Word
Delphi組件面板上有一組Servers組件,能非常方便地訪問和控制Word,在編程時(shí)能夠?qū)崿F(xiàn)友好的代碼提示。本文使用此方法來介紹在Delphi開發(fā)環(huán)境中如何實(shí)現(xiàn)對(duì)Word文檔的處理。
2Word的對(duì)象模型
Word2000的層次結(jié)構(gòu)比較復(fù)雜,包括100多個(gè)對(duì)象,各對(duì)象處于一個(gè)完整的體系結(jié)構(gòu)且相互聯(lián)系,整個(gè)Word2000對(duì)象可以看成一個(gè)層次結(jié)構(gòu),每一個(gè)對(duì)象處于一個(gè)特定的對(duì)象層次中,其中Application對(duì)象處于最高層,除Application外的其它對(duì)象都是高層次的對(duì)象派生,派生的對(duì)象處于原對(duì)象的下層,常用的Word 2000對(duì)象。
(1)Application對(duì)象:位于Word對(duì)象的最高層,代表整個(gè)Word應(yīng)用程序。
(2)Document對(duì)象:代表一篇Word文檔。
(3)Selection對(duì)象:代表窗口中所選定的內(nèi)容。
(4)Range對(duì)象:由Document對(duì)象派生,代表Word文檔中的某個(gè)范圍。
(5)Font對(duì)象:由Selection對(duì)象派生,包含各種字體屬性。
(6)ParagraphFormat對(duì)象:由Selection對(duì)象派生,代表所有段落格式。
3通過Servers組件操作Word
首先通過WordApliation組件實(shí)現(xiàn)Delphi與Word的無縫聯(lián)接,然后用OLE技術(shù)借助VBA來控制Word對(duì)象,其過程主要包括聯(lián)結(jié)Word服務(wù)器、創(chuàng)建或打開文稿、編輯文檔、格式設(shè)置、保存與打印設(shè)置、斷開Word服務(wù)器等步驟。
從Servers組件頁中拖一個(gè)TWordApplication組件、一個(gè)TWordDocument組件放到窗體上,分別命名為WordApp、WordDoc。
(1)聯(lián)結(jié)Word服務(wù)器
WordApp.AutoConnect:=True;
WordApp.ConneetKind:=ckRunningorNew;
WordApp.Connect;
WordApp.Visible:=true;
(2)文稿的創(chuàng)建與打開
與Word 2000建立聯(lián)系后即可以新建或打開Word文檔,其方法如下:
WordApp.Documents.Add(Template,NewTemplate,DocumentType,visi-ocLentType'Visi—ble);
若打開已有的Word文檔,可使用:
WordApp.Documents.Open(FileName,Confirm Conversions,ReadOnly,PassWordDocument,PasswordTemplate,Revent,WfitePasswordDecu-ment,WritePassWordTemplate,F(xiàn)ormat,Encoding,Visible)
WordDoe.ConnectTo(WontApp.Documents.Item(itemlndex)):
(3)文檔的編輯:
(4)表格的處理
1、插入表格
可以使用下面的代碼插入一個(gè)4行5列的規(guī)則表,并可根據(jù)內(nèi)容來調(diào)整表格寬度:
Var DefaultTableBehavior,AutoFitBehavior:OleVariant;
DefaultTableBehavior:=wdWord9TableBehavior;
AutoFitBehavlor:=wdAutoFitContent;
WordDoc.Tables.Add(WordApp.Selection.Range,4,5,DefauhTableBe-havior,AutoFitBehavior);
2、合并單元格
4結(jié)束語
利用Word 2000的VBA可實(shí)現(xiàn)在Delphi中靈活控制Word,由于Word的對(duì)象很多,而且各個(gè)對(duì)象又有大量的方法,若全面掌握并非易事,可以通過在Word環(huán)境下錄制宏記錄,然后在Visual Basic編輯器中查看宏的VBA代碼,從而獲得Word的方法及用法。上述方法均在WindowsXP、Office2000、Delphi7.0下驗(yàn)證通過。