亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

Delphi和Office程序開發

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

關鍵詞:Delphi;Word;Excel;報表;

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网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本高清+成人网在线观看| 欧美高清视频在线观看| 国产精品老女人视频| 欧美xxxx做受欧美.88| 久久精彩免费视频| 久久99国产精品久久久久久久久| 中文字幕综合在线| 亚洲精品欧美一区二区三区| 色偷偷偷综合中文字幕;dd| 国产在线视频一区| 久久免费视频这里只有精品| 日本老师69xxx| 久久久av亚洲男天堂| 欧美日本啪啪无遮挡网站| 国产精品日韩在线播放| 91理论片午午论夜理片久久| 日韩综合中文字幕| 欧美综合一区第一页| 亚洲高清av在线| 欧美激情国产高清| 欧美成人性生活| 国内精品视频一区| 亚洲欧美一区二区三区情侣bbw| 国产在线拍揄自揄视频不卡99| 国产欧美精品一区二区三区介绍| 国产成人亚洲综合91| 国产不卡精品视男人的天堂| 日韩激情第一页| 91色中文字幕| 久久精品这里热有精品| 国产精品久久久久久久久久新婚| 国产91免费观看| 久久久久久69| 国产成人精品久久久| 亚洲女人初尝黑人巨大| 国产小视频国产精品| www.亚洲人.com| 欧美日韩亚洲91| 久久久久国产精品免费| 68精品久久久久久欧美| 亚洲毛片在线观看.| 精品爽片免费看久久| 一本色道久久综合狠狠躁篇怎么玩| 日韩美女视频在线观看| 九九视频这里只有精品| 国产91成人在在线播放| 日韩高清人体午夜| 国产精品麻豆va在线播放| 亚洲色无码播放| 69av视频在线播放| 久久久久久有精品国产| 欧美超级乱淫片喷水| 欧美不卡视频一区发布| 欧美夫妻性视频| 51精品国产黑色丝袜高跟鞋| 欧美电影免费观看高清完整| 日韩在线观看高清| 国产美女扒开尿口久久久| 亚洲一区二区三区777| 国产一区二区色| 日韩视频在线观看免费| 亚洲精品在线不卡| 国产精品免费久久久久影院| 国产欧美一区二区三区在线看| 91免费看视频.| 亚洲色图狂野欧美| 91久久精品国产91久久性色| 亚洲一区二区三区视频| 日韩中文字幕第一页| 91在线观看免费高清完整版在线观看| 久久久成人av| 国产成人一区二区在线| 欧美性理论片在线观看片免费| 欧美寡妇偷汉性猛交| 欧美日韩性视频| 国产精品v片在线观看不卡| 欧美人在线观看| 久久精品国产成人精品| 精品欧美一区二区三区| 亚洲最大中文字幕| 国产成人亚洲综合青青| 成人黄色免费网站在线观看| 亚洲欧美国产精品久久久久久久| 亚洲精品午夜精品| 成人两性免费视频| 国产日韩在线一区| 国内精品久久久久久影视8| 成人久久精品视频| 91av在线播放视频| 国产精品久久久久77777| 欧美性色视频在线| 亚洲精品美女网站| 精品福利樱桃av导航| 欧美在线观看视频| 国产精品吴梦梦| 久久久久久久久国产精品| 91国产一区在线| xxxx性欧美| 亚洲国产中文字幕在线观看| 欧美日韩不卡合集视频| 国产精品草莓在线免费观看| 欧美亚洲成人精品| 亚洲综合第一页| 亚洲精品影视在线观看| 日韩视频免费看| 久热精品视频在线免费观看| 国产精品视频26uuu| 91精品久久久久久久久青青| 精品亚洲va在线va天堂资源站| xxxx欧美18另类的高清| 成人亚洲欧美一区二区三区| 亚洲性69xxxbbb| 久久亚洲综合国产精品99麻豆精品福利| 亚洲精品国产品国语在线| 欧美另类高清videos| 欧美极品欧美精品欧美视频| 国产精品尤物福利片在线观看| 亚洲欧洲xxxx| 日韩欧美999| 日韩精品极品在线观看播放免费视频| 国产精品一区二区3区| 最近中文字幕mv在线一区二区三区四区| 国产精品偷伦一区二区| 日韩av色在线| 欧美精品少妇videofree| 国产精品麻豆va在线播放| 国产日韩精品入口| 成人做爰www免费看视频网站| 66m—66摸成人免费视频| 一本色道久久88亚洲综合88| 精品视频久久久久久| 久久影视电视剧免费网站清宫辞电视| 26uuu另类亚洲欧美日本老年| 亚洲国产精品va在线看黑人动漫| 欧美日韩国产成人高清视频| 国产91精品最新在线播放| 国产亚洲精品久久久久久牛牛| 中文字幕亚洲激情| 国产精品视频在线播放| 亚洲香蕉伊综合在人在线视看| 亚洲色图五月天| 久久久久日韩精品久久久男男| 91精品国产91久久久久久久久| 国产精品露脸av在线| 欧美激情精品久久久久久久变态| 久久久久久久久国产精品| 日韩高清有码在线| 日韩欧美中文在线| 日韩久久精品电影| 日韩欧美福利视频| 久久久久久久久久婷婷| 亚洲第一天堂无码专区| 国产精品夜间视频香蕉| 日韩中文字幕av| 亚洲高清久久久久久| 欧美性精品220| 91麻豆国产语对白在线观看| 成人a在线视频| 日韩在线欧美在线| 久久久电影免费观看完整版| 亚洲精品久久久久久久久久久| 九九热精品视频在线播放| 国产精品99久久久久久久久| 成人免费自拍视频|