


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
在PowerBuilder中利用自動(dòng)化技術(shù)調(diào)用Excel處理與打印表格
摘要Microsoft公司的Office辦公軟件中的Excel是一種專業(yè)的電子表格處理軟件,Microsoft公司對(duì)它的Office軟件系列都提供了對(duì)自動(dòng)化技術(shù)的支持,這樣就可以通過(guò)其他高級(jí)編程語(yǔ)言調(diào)用Office軟件系列,利用其成熟而可靠的技術(shù)與功能來(lái)輕松實(shí)現(xiàn)特定功能。本文中,將通過(guò)自動(dòng)化技術(shù),實(shí)現(xiàn)在PowerBuilder中調(diào)用Excel來(lái)實(shí)現(xiàn)表格的輸出與打印。關(guān)鍵詞自動(dòng)化ExcelPowerBuilder表格1問(wèn)題的提出在為某企業(yè)設(shè)計(jì)電子圖文檔管理系統(tǒng)中,用戶提出要求,要能夠快速輸出某些電子表格。在未使用自動(dòng)化技術(shù)之前,該企業(yè)使用的是AutoCad軟件來(lái)一次性將多個(gè)表格生成到一個(gè)DWG文件中,然后通過(guò)繪圖儀出圖。這種做法的好處在于能夠有效的節(jié)省企業(yè)的開(kāi)支,一次性生成大量的表格。但是,缺點(diǎn)也是明顯的:這種做法欠缺靈活性,當(dāng)遇到只需要輸出少量表格的情況時(shí),做法過(guò)于復(fù)雜。即這種做法非常適合于大量表格的批量輸出,而不適合個(gè)別表格的單獨(dú)輸出。正是在這種背景下,我們提出了使用Excel電子表格處理軟件來(lái)處理該企業(yè)的表格輸出問(wèn)題。Excel軟件是專門為處理各式電子表格而設(shè)計(jì),它能夠非常高效而專業(yè)的處理各式表格,并且非常關(guān)鍵的是:它具有表格計(jì)算匯總功能,在這一點(diǎn)上,AutoCad軟件是無(wú)法相比的。另外一個(gè)原因,在當(dāng)前的企業(yè)中,打印機(jī)的使用日益普及,打印速度也日益加快,當(dāng)多個(gè)用戶同時(shí)需要打印時(shí),可以通過(guò)高速的網(wǎng)絡(luò)打印機(jī)來(lái)輕松實(shí)現(xiàn),在這一點(diǎn)上,使用Excel也具有一定的優(yōu)勢(shì)。2自動(dòng)化技術(shù)Microsoft公司提供的自動(dòng)化技術(shù),簡(jiǎn)單的說(shuō),就是將某一個(gè)應(yīng)用程序的功能(可能是一部分)當(dāng)作一系列的對(duì)象來(lái)向其他的外部應(yīng)用程序暴露(Expose),這個(gè)外部應(yīng)用程序就可以使用這些對(duì)象,這個(gè)過(guò)程就被稱為自動(dòng)化(Automation)。例如,Excel,我們可以將它的大部分功能當(dāng)作一系列對(duì)象來(lái)加以暴露,然后在另外的應(yīng)用程序中使用這些對(duì)象,這就是使用自動(dòng)化對(duì)象來(lái)調(diào)用Excel完成指定功能的關(guān)鍵所在。一個(gè)應(yīng)用程序的可訪問(wèn)對(duì)象被稱為對(duì)象模型(ObjectModel),如果能夠使用自動(dòng)化來(lái)操縱一個(gè)程序的對(duì)象模型就意味著可以重復(fù)使用組件。例如,使用自動(dòng)化,利用Excel中已經(jīng)編寫和測(cè)試好的代碼來(lái)進(jìn)行復(fù)雜的數(shù)學(xué)運(yùn)算,這就省去了程序員親自動(dòng)手編寫和調(diào)試復(fù)雜代碼的麻煩。暴露對(duì)象的程序被稱為服務(wù)器(Servers),使用這些對(duì)象的程序被稱為客戶(Clients)。在這里,我們把Excel當(dāng)作自動(dòng)化服務(wù)器,把我們的PowerBuilder應(yīng)用程序當(dāng)作客戶,這樣就可以通過(guò)自動(dòng)化技術(shù)來(lái)實(shí)現(xiàn)特定的表格生成和打印功能。在大多數(shù)的Office軟件中都包含一個(gè)Application對(duì)象,Excel也不例外,這個(gè)對(duì)象是Excel對(duì)象模式中的基礎(chǔ)對(duì)象,它包含了許許多多的成員(Member),但是在這里,我們只需要使用到其中的一部分。3在PowerBuilder中使用自動(dòng)化技術(shù)PowerBuider是Sybase公司推出的一種高級(jí)數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)環(huán)境,在這個(gè)環(huán)境中開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序,使用其專利技術(shù)——DataWindow,可以很輕松的開(kāi)發(fā)出非常專業(yè)的數(shù)據(jù)庫(kù)應(yīng)用程序。此外,PowerBuilder還支持多種數(shù)據(jù)庫(kù),能夠很輕松的與目前流行的MSSQLServer、Oracle等企業(yè)級(jí)數(shù)據(jù)庫(kù)建立連接,處理各種事務(wù)。PowerBuilder中的編程語(yǔ)言被稱為腳本(Script),實(shí)際上,使用PowerBuilder編寫的程序也是事件驅(qū)動(dòng),在界面設(shè)計(jì)上也完全做到了“所見(jiàn)即所得”,并完全使用面向?qū)ο蟮木幊趟枷?,它還提供了對(duì)OLE、DDE、Automation等技術(shù)的支持,下面就來(lái)說(shuō)明如何在PowerBuilder中使用自動(dòng)化技術(shù)。首先,聲明一個(gè)OLE對(duì)象,如下:OLEObjectOLE_MyExcel其次,創(chuàng)建該OLE對(duì)象,如下:OLE_MyExcel=CreateOLEObject然后,使用PowerBuilder中的ConnectToNewObject函數(shù)來(lái)創(chuàng)建一個(gè)新的OLE對(duì)象,并且連接到該對(duì)象上,如下:OLE_MyExcel.ConnectToNewObject("excel.Application")調(diào)用該函數(shù)時(shí),如果成功的話,返回值是0,否則就意味著調(diào)用失敗。到此,自動(dòng)化的準(zhǔn)備工作已經(jīng)完成,下面是具體的操作過(guò)程。4處理和打印表格在調(diào)用Excel時(shí),首先需要解決的一個(gè)問(wèn)題是是否讓Excel可見(jiàn),即是否為后臺(tái)操作。這個(gè)問(wèn)題可以簡(jiǎn)單的通過(guò)設(shè)置Visible屬性加以控制,如果希望Excel后臺(tái)運(yùn)行,可以簡(jiǎn)單的編寫如下語(yǔ)句:OLE_MyExcel.visible=false然后是打開(kāi)指定的XLS文件,具體的語(yǔ)句如下:OLE_MyExcel.Application.Workbooks.Open("d:\excel-example.xls")要操縱數(shù)據(jù)列表中的數(shù)據(jù)單元,就必須對(duì)ActiveCell對(duì)象進(jìn)行操縱,該對(duì)象是Application對(duì)象中一項(xiàng)屬性。將數(shù)據(jù)輸入到一個(gè)數(shù)據(jù)單元包括兩個(gè)步驟:第一是選擇一個(gè)數(shù)據(jù)單元,第二是將數(shù)據(jù)傳遞給它。選擇一個(gè)數(shù)據(jù)單元通過(guò)調(diào)用Range對(duì)象的Select()方法就可以完成,Range對(duì)象是用來(lái)選擇一個(gè)或多個(gè)數(shù)據(jù)單元的。Select()方法需要起始的行數(shù)、列數(shù)和結(jié)束的行數(shù)、列數(shù)來(lái)確定所選擇的數(shù)據(jù)單元。如果只選擇一個(gè)單獨(dú)的數(shù)據(jù)單元,就可以忽略結(jié)束的行、列數(shù)。當(dāng)范圍被設(shè)定以后,將數(shù)據(jù)傳遞給ActiveCell對(duì)象(引用了被Range對(duì)象指定的數(shù)據(jù)單元)的FormulaR1C1屬性。如下:OLE_MyExcel.Range("c10").Select()OLE_MyExcel.ActiveCell.FormulaR1C1=sle_2.text//Sle_2為一個(gè)靜態(tài)文本框控件OLE_MyExcel.Range("J10").Select()……如果希望得到一系列數(shù)值的和,則需要首先使用Select()方法來(lái)指定需要求和的Cell的范圍,然后指定存放和的Cell位置,最后調(diào)用SUM方法即可,如下:OLE_MyExcel.Range(“A1:D1”).Select()OLE_MyExcel.Range(“E1”).Activate()OLE_MyExcel.ActiveCell.FormulaR1C1=“=SUM(RC[-4]:RC[-1])”當(dāng)然還可以進(jìn)行其他方面的設(shè)置,例如把字體設(shè)置為粗體(Bold),則可以編寫如下代碼:OLE_MyExcel.Range(“A1:E1”).Select()OLE_MyExcel.Selection.Font.Bold=True至于其他的設(shè)置可以參考相關(guān)書籍。至于表格的打印,則是簡(jiǎn)單的調(diào)用PrintOut()方法即可,但是需要首先指定打印的范圍,如下是打印名為“Sheet1”的WorkSheet的代碼:OLE_MyExcel.Worksheets("sheet1").Activate()OLE_MyExcel.ActiveSheet.PrintOut()接下來(lái)是關(guān)于對(duì)XLS文件進(jìn)行了改動(dòng)以后,在關(guān)閉該文件時(shí)是否需要向用戶提出警告。這個(gè)問(wèn)題只需要簡(jiǎn)單的對(duì)OLE_MyExcel.Application.DisplayAlerts屬性進(jìn)行設(shè)置即可,為True時(shí)彈出警告框,為False時(shí)不彈出警告框,保存所作的修改。最后一步,在作完所有工作以后,需要關(guān)閉自動(dòng)化對(duì)象,撤銷與自動(dòng)化服務(wù)器的連接,銷毀OLE對(duì)象,因?yàn)槭褂米詣?dòng)化程序,尤其是Word或Excel這樣的Office程序,所消耗的系統(tǒng)資源是很龐大的,因此在每次工作完成之后,需要釋放這部分系統(tǒng)資源。如下:OLE_MyExcel.Application.quit()OLE_MyExcel.DisConnectObject()destroyOLE_MyExcel5結(jié)束語(yǔ)在使用了自動(dòng)化技術(shù)以后,完滿的解決了原來(lái)的表格處理問(wèn)題,可以非常方便的對(duì)各種表格進(jìn)行小批量的處理與打印,非常靈活。如果能夠與企業(yè)的數(shù)據(jù)庫(kù)結(jié)合起來(lái),通過(guò)外部程序?qū)?shù)據(jù)成批輸入,亦可解決大批量數(shù)據(jù)輸出的問(wèn)題,不失為一條好的解決方案。在實(shí)際應(yīng)用中,通過(guò)與企
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 20833.2-2025旋轉(zhuǎn)電機(jī)繞組絕緣第2部分:定子繞組絕緣在線局部放電測(cè)量
- 浙江省杭州五校2026屆高二化學(xué)第一學(xué)期期末教學(xué)質(zhì)量檢測(cè)試題含答案
- 漢字的演變課件
- 漢字思維上課課件
- 2024-2025學(xué)年廣東省云浮市云城區(qū)人教版四年級(jí)下冊(cè)期末考試數(shù)學(xué)試卷(含答案)
- 《世說(shuō)新語(yǔ)》的國(guó)學(xué)密碼解析知到智慧樹(shù)答案
- 餐飲行業(yè)OO模式發(fā)展趨勢(shì)分析
- 2025校園文化墻內(nèi)容更新合同
- 2025年密封件項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 醫(yī)院品質(zhì)管理FOCUS-PDCA品管圈獲獎(jiǎng)案例-降低手術(shù)室腹腔鏡器械分配缺陷率成果匯報(bào)課件
- 2025年福建中閩能源股份有限公司招聘筆試參考題庫(kù)含答案解析
- 科研項(xiàng)目管理質(zhì)量承諾
- 北師大版小學(xué)數(shù)學(xué)教材教法培訓(xùn)
- 物業(yè)小區(qū)安全生產(chǎn)管理制度
- 醫(yī)院培訓(xùn)課件:《主動(dòng)脈夾層的護(hù)理》
- 2024版《皮肌炎的臨床表現(xiàn)》課件
- 2024年廣東湛江廉江市部分機(jī)關(guān)(鎮(zhèn)街道)單位招聘政府雇員11人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 醉里乾坤大壺中日月長(zhǎng)-初中語(yǔ)文九年級(jí)第六單元名著導(dǎo)讀《水滸傳》整本書閱讀精讀研討課 公開(kāi)課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 第一章 有理數(shù) 大單元教學(xué)設(shè)計(jì)-2024-2025學(xué)年七年級(jí)數(shù)學(xué)上冊(cè)(人教版2024)
- AQ 2029-2010 金屬非金屬地下礦山主排水系統(tǒng)安全檢驗(yàn)規(guī)范(正式版)
- JGJ153-2016 體育場(chǎng)館照明設(shè)計(jì)及檢測(cè)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論