在PowerBuilder中利用自動化技術(shù)調(diào)用Excel處理與打印表格_第1頁
在PowerBuilder中利用自動化技術(shù)調(diào)用Excel處理與打印表格_第2頁
在PowerBuilder中利用自動化技術(shù)調(diào)用Excel處理與打印表格_第3頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、在PowerBuilder中利用自動化技術(shù)調(diào)用Excel處理與打印表格         05-12-23 10:55:00     作者:佚名    編輯:studa9ngns摘要Microsoft公司的Office辦公軟件中的Excel是一種專業(yè)的電子表格處理軟件,Microsoft公司對它的Office軟件系列都提供了對自動化技術(shù)的支持,這樣就可以通過其他高級編程語言調(diào)用Office軟件系列,利用其成熟而可靠的技術(shù)與功能來輕松實現(xiàn)特

2、定功能。本文中,將通過自動化技術(shù),實現(xiàn)在PowerBuilder中調(diào)用Excel來實現(xiàn)表格的輸出與打印。關鍵詞   自動化  Excel  PowerBuilder  表格1 問題的提出在為某企業(yè)設計電子圖文檔管理系統(tǒng)中,用戶提出要求,要能夠快速輸出某些電子表格。在未使用自動化技術(shù)之前,該企業(yè)使用的是AutoCad軟件來一次性將多個表格生成到一個DWG文件中,然后通過繪圖儀出圖。這種做法的好處在于能夠有效的節(jié)省企業(yè)的開支,一次性生成大量的表格。但是,缺點也是明顯的:這種做法欠缺靈活性,當遇到只需要輸出少量表格的情況時,做法過于復雜。即這種做法非

3、常適合于大量表格的批量輸出,而不適合個別表格的單獨輸出。正是在這種背景下,我們提出了使用Excel電子表格處理軟件來處理該企業(yè)的表格輸出問題。Excel軟件是專門為處理各式電子表格而設計,它能夠非常高效而專業(yè)的處理各式表格,并且非常關鍵的是:它具有表格計算匯總功能,在這一點上,AutoCad軟件是無法相比的。另外一個原因,在當前的企業(yè)中,打印機的使用日益普及,打印速度也日益加快,當多個用戶同時需要打印時,可以通過高速的網(wǎng)絡打印機來輕松實現(xiàn),在這一點上,使用Excel也具有一定的優(yōu)勢。2 自動化技術(shù)Microsoft公司提供的自動化技術(shù),簡單的說,就是將某一個應用程序的功能(可能是一部分)當作一

4、系列的對象來向其他的外部應用程序暴露(Expose),這個外部應用程序就可以使用這些對象,這個過程就被稱為自動化(Automation)。例如,Excel,我們可以將它的大部分功能當作一系列對象來加以暴露,然后在另外的應用程序中使用這些對象,這就是使用自動化對象來調(diào)用Excel完成指定功能的關鍵所在。一個應用程序的可訪問對象被稱為對象模型(Object Model),如果能夠使用自動化來操縱一個程序的對象模型就意味著可以重復使用組件。例如,使用自動化,利用Excel中已經(jīng)編寫和測試好的代碼來進行復雜的數(shù)學運算,這就省去了程序員親自動手編寫和調(diào)試復雜代碼的麻煩。暴露對象的程序被稱為服務器(Ser

5、vers),使用這些對象的程序被稱為客戶(Clients)。在這里,我們把Excel當作自動化服務器,把我們的PowerBuilder應用程序當作客戶,這樣就可以通過自動化技術(shù)來實現(xiàn)特定的表格生成和打印功能。在大多數(shù)的Office軟件中都包含一個Application對象,Excel也不例外,這個對象是Excel對象模式中的基礎對象,它包含了許許多多的成員(Member),但是在這里,我們只需要使用到其中的一部分。3 在PowerBuilder中使用自動化技術(shù)PowerBuider是Sybase公司推出的一種高級數(shù)據(jù)庫應用程序開發(fā)環(huán)境,在這個環(huán)境中開發(fā)數(shù)據(jù)庫應用程序,使用其專利技術(shù)DataWi

6、ndow,可以很輕松的開發(fā)出非常專業(yè)的數(shù)據(jù)庫應用程序。此外,PowerBuilder還支持多種數(shù)據(jù)庫,能夠很輕松的與目前流行的MS SQL Server、Oracle等企業(yè)級數(shù)據(jù)庫建立連接,處理各種事務。PowerBuilder中的編程語言被稱為腳本(Script),實際上,使用PowerBuilder編寫的程序也是事件驅(qū)動,在界面設計上也完全做到了“所見即所得”,并完全使用面向?qū)ο蟮木幊趟枷?,它還提供了對OLE、DDE、Automation等技術(shù)的支持,下面就來說明如何在PowerBuilder中使用自動化技術(shù)。首先,聲明一個OLE對象,如下:OLEObject OLE_MyExcel其次,

7、創(chuàng)建該OLE對象,如下:OLE_MyExcel =Create OLEObject然后,使用PowerBuilder中的ConnectToNewObject函數(shù)來創(chuàng)建一個新的OLE對象,并且連接到該對象上,如下:OLE_MyExcel. ConnectToNewObject ("excel.Application")調(diào)用該函數(shù)時,如果成功的話,返回值是0,否則就意味著調(diào)用失敗。到此,自動化的準備工作已經(jīng)完成,下面是具體的操作過程。4 處理和打印表格在調(diào)用Excel時,首先需要解決的一個問題是是否讓Excel可見,即是否為后臺操作。這個問題可以簡單的通過設置Visible屬性

8、加以控制,如果希望Excel后臺運行,可以簡單的編寫如下語句:OLE_MyExcel.visible=false然后是打開指定的XLS文件,具體的語句如下:OLE_MyExcel.Application.Workbooks.Open ("d:excel-example.xls")要操縱數(shù)據(jù)列表中的數(shù)據(jù)單元,就必須對ActiveCell對象進行操縱,該對象是Application對象中一項屬性。將數(shù)據(jù)輸入到一個數(shù)據(jù)單元包括兩個步驟:第一是選擇一個數(shù)據(jù)單元,第二是將數(shù)據(jù)傳遞給它。選擇一個數(shù)據(jù)單元通過調(diào)用Range對象的Select()方法就可以完成,Range對象是用來選擇一個

9、或多個數(shù)據(jù)單元的。Select()方法需要起始的行數(shù)、列數(shù)和結(jié)束的行數(shù)、列數(shù)來確定所選擇的數(shù)據(jù)單元。如果只選擇一個單獨的數(shù)據(jù)單元,就可以忽略結(jié)束的行、列數(shù)。當范圍被設定以后,將數(shù)據(jù)傳遞給ActiveCell對象(引用了被Range對象指定的數(shù)據(jù)單元)的FormulaR1C1屬性。如下:OLE_MyExcel.Range("c10").Select()OLE_MyExcel.ActiveCell.FormulaR1C1 = sle_2.text  /Sle_2為一個靜態(tài)文本框控件OLE_MyExcel.Range("J10").Select()如

10、果希望得到一系列數(shù)值的和,則需要首先使用Select()方法來指定需要求和的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)”當然還可以進行其他方面的設置,例如把字體設置為粗體(Bold),則可以編寫如下代碼:OLE_MyExcel.Range(“A1:E1”).Select()OLE_MyExcel.Selection.Fo

11、nt.Bold = True至于其他的設置可以參考相關書籍。至于表格的打印,則是簡單的調(diào)用PrintOut()方法即可,但是需要首先指定打印的范圍,如下是打印名為“Sheet1”的WorkSheet的代碼:OLE_MyExcel.Worksheets("sheet1").Activate()OLE_MyExcel.ActiveSheet.PrintOut()接下來是關于對XLS文件進行了改動以后,在關閉該文件時是否需要向用戶提出警告。這個問題只需要簡單的對OLE_MyExcel.Application.DisplayAlerts屬性進行設置即可,為True時彈出警告框,為False時不彈出警告框,保存所作的修改。最后一步,在作完所有工作以后,需要關閉自動化對象,撤銷與自動化服務器的連接,銷毀OLE對象,因為使用自動化程序,尤其是Word或Excel這樣的Office程序,所消耗的系統(tǒng)資源是很龐大的,因此在每次工作完成之后,需要釋放這部分系統(tǒng)資源。如下:OLE_MyExcel.Application.quit() OLE_MyExcel.DisConnectObject()destroy OL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論