麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Delphi > 正文

Delphi和Office程序開發

2019-11-18 18:06:28
字體:
來源:轉載
供稿:網友
 

關鍵詞:Delphi;WordExcel;報表;

1.引言

在利用Delphi開發應用程序的時候,通常我們要設計出很多各種格式的文檔、報表,經常要進行文件的創建、編輯及修改,雖然Delphi本身提供了很多設計報表的控件或方法,但是存在明顯的不足,比如中文輸入,數據格式的控制等操作起來比較麻煩。利用大家都很熟悉的Office工具結合開發,能夠很好的解決這方面的問題。以下就以Delphi為例詳細介紹怎么利用Office完成各種文檔、報表的制作。

2.實現方法

利用Delphi和Office結合開發主要有以下三種方法:

(1) 通過Delphi的控件TOleContainer 將Office嵌入,這是最簡單的Ole嵌入,能夠直接將Office文檔調用,只需要使用ToleContainer.Run就可以將Office文檔直接啟動。且這樣啟動的Office文檔與Delphi程序是一個整體(從界面上看),但是它存在不可克服的缺點,即不能通過Delphi控制Office文檔,也就不能實現將靈活操縱Office的目的。

(2) 使用Delphi提供的Servers控件調用Office,使用Office的屬性,使用Delphi的Servers控件來操縱Office,在編程時Delphi能夠實現代碼提示,總體上看能夠較好的實現Delphi對Office的控制,但是還有一些Office的功能不能在Delphi中調用(比如自己編寫的VBA宏代碼)。且實現功能時本來在VBA代碼中可選擇參數在Delphi調用的時候必須添加,否則,連編譯都不能通過。這種方式啟動的Office與Delphi程序分屬兩個窗體。

  (3) 使用CreateOleObject將啟動Office,然后以Ole方式對Office進行控制。這種辦法是使用以CreateOleObjects方式調用Office,實際上還是Ole,但是這種方式能夠真正做到完全控制Office文件,能夠使用Office的所有屬性,包括自己編寫的VBA宏代碼。與Servers控件和Com技術相比,本方法能夠真正地使用Office的各種屬性,和在VBA中編寫自己的代碼基本一樣,可以缺省的代碼也不需要使用。

3.軟件實現

       31第一種方法:通過Delphi的控件TOleContainer Office嵌入,操作方法如下:

(1)    調用DelphiSystem頁控件ToleContainer實現;

(2)    雙擊OleContainer,出現如下界面:

(3)這時你可以進行選擇了,選擇“由文件創建”,選擇相應的文檔,及就簡單的實現了將OFFICE文檔調入的功能;如下圖:


32第二種方法:使用Delphi提供的Servers控件調用Office它使得我們很容易地把Office中的應用程序(Word, Excel, Powerpoint, Outlook and access等)當作一個com應用服務器進行控制,以Word為例,介紹其實現方法:

(1)    調用TwordDocument(建立Word文件對象)、Twordapplication(啟動Word并建立同Word的連接) 、TwordFont(設置Word文件的字體)、TwordParagraphFormat(設置Word文件中的段落格式)控件;

(2)    啟動Word,通過TwordApplication實現;

Try

Wordapplication.Connect;

Except

MessageDlg('Word may not be installed', mtError, [mbOk], 0);

Abort;

End;

                     (3)創建一個新的文件,通過TwordApplication實現;

                            Template := EmptyParam;  //表示不使用模板

NewTemplate := False;  //表示新建新建文檔的類型為文檔,

//添加新文檔

WordApplication.Documents.Add(Template, NewTemplate);                                       WordDocument.ConnectTo(WordApplication.Documents.Item(ItemIndex));

//關閉拼音查找和語法查找,以便提高程序運行的效率

WordApplication.Options.CheckSpellingAsYouType := False;

WordApplication.Options.CheckGrammarAsYouType := False;

(3)    插入數據,通過TwordDocument實現;

//文本

WordDocument.Range.InsertAfter('Oracle數據庫'+ chr(#13));

//表格

WordDocument1.Tables.Add(WordDocument1.Range,rownum,colnum,template,newtemplate); //其中rownum是表格行數,colnum 是表格列數

//向表格中插入數據

WordDocument1.Tables.Item(1).Cell(1,1).Range.Text:='證書編號';

WordDocument1.Tables.Item(1).Cell(1,2).Range.Text:='身份證號碼'

(4)    格式的設置

WordFont.ConnectTo(WordDocument.Sentences.GetLast.Font);//設置某些文字

WordFont.ConnectTo(WordDocument.Paragraphs.GetLast.Font);//設置某段文字

WordFont.Bold:=1;

WordFont.Italic:=1;……………………

WordDocument1.PageSetup.HeaderDistance:=1.5; //設置頁邊距

WordDocument1.PageSetup.FooterDistance:=1.75;

//設置頁眉頁腳 

WordDocument1.ActiveWindow.ActivePane.View.SeekView:=wdSeekCurrentPageFooter;                        WordDocument1.ActiveWindow.ActivePane.Selection.InsertAfter('第'+inttostr(wdFieldNumPages)+'頁');

//讓頁腳向右靠齊

WordDocument1.ActiveWindow.ActivePane.Selection.ParagraphFormat.Alignment:=wdAlignParagraphRight;

…………………………

33第三種方法:使用CreateOleObject將啟動Office,然后以Ole方式對Office進行控制。以Excel表格為例(表格的格式可以是事先設定好的,也可以是自己自由定義的,這里以事先設定好表格的格式為例),進行說明:

(1)       Uses中添加Comobj類;

(2)       申請一個全局變量:FvExcel ,類型為Variant; 表示是Excel對象

(3)    定義一個函數用來啟動Excel,如定義function OpenExcel(strFileName : string) : Boolean;

Function Tform1. OpenExcel(strFileName : string) : Boolean;

begin

             Result := True;

             try

                    FvExcel := CreateOleObject('Excel.Application');

                    except

              Application.MessageBox('打開Excel失敗',PChar(Application.Title),MB_ICONERROR);

                      Result := False;

                    end;

                    FvExcel.Visible := True;

                    FvExcel.Caption := '';

                    FvExcel.WorkBooks.Open(strFileName); //打開工作簿

                    FvExcel.WorkSheets[1].Activate;  //設置第1個工作表為活動工作表

end;

(4)    FvExcel中插入數據

FvExcel.cells[row,col].value:=’中國;//row表示行,col表示列;

(5)    設置格式

fvexcel.rows[row].font.color:=clred; //設置某一行數據的顏色

fvexcel.ActiveSheet.PageSetup.LeftMargin:=1;//設置左頁邊距

fvexcel.ActiveSheet.PageSetup. RightMargin:=1;//設置右頁邊距

              fvexcel.ActiveSheet.PageSetup.Zoom:=100;//設置顯示比例

              fvexcel.ActiveSheet.PageSetup.PaperSize:= xlPaperA4;//設置打印紙張大

4.一些體會

       在程序設計過程中,我們很多時候要設置Office文檔、表格的格式,這時要用到很多屬性、方法和函數等,這些屬性、方法和函數一般是平時很少用到的,如果手上沒有VBA手冊,很難查找到這些東西,所以,比較好的方法是首先打開OFFICE,事先做好你要設計的格式,通過OFFICE中的宏記錄,然后打開OFFICE中的Visual Basic編輯器,查看代碼就可以看到你的操作使用到的屬性、方法或者函數了。通常很多屬性、函數或者方法可以直接搬到Delphi程序中用,一部分也只要稍微修改,也可以在Delphi中使用了。

5.結束語

       通過Delphi可以很完美的和Office結合,設計出各種樣式的表格、文本以及幻燈片等。同時通過Delphi操作數據庫,把要求的數據插入Office適當的位置,通過Office本身的功能實現預覽、打印和保存,從而減少節約程序調試和定位調試的時間,簡化的編程的難度,減少了程序員的工作量。對于用戶來講,采用大家熟悉的Office,增加了系統可操作性。該思想已經在“職稱評審管理信息系統”中大量使用。



上一篇:Delphi中使用OLE方法操作Excel

下一篇:如何用Delphi編寫自己的可視化控件

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 色av成人天堂桃色av | 国产交换3p国产精品 | 毛片在哪里看 | av观看国产 | 久久影院一区二区三区 | 日本在线国产 | 色婷婷久久一区二区 | 一本一本久久a久久精品综合小说 | 欧美精品久久久久久久久久 | 国产成人精品一区二区三区电影 | 成人午夜视频在线观看免费 | 伊人在线视频 | 九艹在线 | 日韩精品 | 久久欧美亚洲另类专区91大神 | 青青草成人免费视频在线 | 免费日本一区二区 | 玖草在线资源 | chinesexxxx刘婷hd 国产91在线播放九色 | 精品国产一区二区三区天美传媒 | av手机免费在线观看 | 久色porn| 国产1区在线观看 | 国产日本在线播放 | 国产一级aa大片毛片 | 91久久在线观看 | 精品一区二区久久久久久按摩 | 国产99一区二区 | 美女一级毛片 | www.99av| 九九黄色影院 | 少妇一级淫片免费放4p | 中文字幕网在线 | 久久96国产精品久久秘臀 | 国产瑟瑟视频 | 在线观看一区二区三区四区 | 精品久久久久久久久久中文字幕 | 毛片免费看网站 | 精品久久久久久综合日本 | 色妹子久久 | 成人啪啪18免费网站 |