利用自動化技術打印excel表格論文
摘要Microsoft公司的Office辦公軟件中的Excel是一種專業的電子表格處理軟件,Microsoft公司對它的Office軟件系列都提供了對自動化技術的支持,這樣就可以通過其他高級編程語言調用Office軟件系列,利用其成熟而可靠的技術與功能來輕鬆實現特定功能。本文中,將通過自動化技術,實現在PowerBuilder中調用Excel來實現表格的輸出與打印。
關鍵詞 自動化 Excel PowerBuilder 表格
1 問題的提出
在為某企業設計電子圖文檔管理系統中,用户提出要求,要能夠快速輸出某些電子表格。在未使用自動化技術之前,該企業使用的是AutoCad軟件來一次性將多個表格生成到一個DWG文件中,然後通過繪圖儀出圖。這種做法的好處在於能夠有效的節省企業的開支,一次性生成大量的表格。但是,缺點也是明顯的:這種做法欠缺靈活性,當遇到只需要輸出少量表格的情況時,做法過於複雜。即這種做法非常適合於大量表格的批量輸出,而不適合個別表格的單獨輸出。正是在這種背景下,我們提出了使用Excel電子表格處理軟件來處理該企業的表格輸出問題。
Excel軟件是專門為處理各式電子表格而設計,它能夠非常高效而專業的處理各式表格,並且非常關鍵的是:它具有表格計算彙總功能,在這一點上,AutoCad軟件是無法相比的。另外一個原因,在當前的企業中,打印機的使用日益普及,打印速度也日益加快,當多個用户同時需要打印時,可以通過高速的網絡打印機來輕鬆實現,在這一點上,使用Excel也具有一定的優勢。
2 自動化技術
Microsoft公司提供的自動化技術,簡單的説,就是將某一個應用程序的功能(可能是一部分)當作一系列的對象來向其他的外部應用程序暴露(Expose),這個外部應用程序就可以使用這些對象,這個過程就被稱為自動化(Automation)。例如,Excel,我們可以將它的大部分功能當作一系列對象來加以暴露,然後在另外的應用程序中使用這些對象,這就是使用自動化對象來調用Excel完成指定功能的關鍵所在。
一個應用程序的可訪問對象被稱為對象模型(Object Model),如果能夠使用自動化來操縱一個程序的對象模型就意味着可以重複使用組件。例如,使用自動化,利用Excel中已經編寫和測試好的代碼來進行復雜的數學運算,這就省去了程序員親自動手編寫和調試複雜代碼的麻煩。
暴露對象的程序被稱為服務器(Servers),使用這些對象的程序被稱為客户(Clients)。在這裏,我們把Excel當作自動化服務器,把我們的PowerBuilder應用程序當作客户,這樣就可以通過自動化技術來實現特定的表格生成和打印功能。
在大多數的Office軟件中都包含一個Application對象,Excel也不例外,這個對象是Excel對象模式中的基礎對象,它包含了許許多多的成員(Member),但是在這裏,我們只需要使用到其中的一部分。
3 在PowerBuilder中使用自動化技術
PowerBuider是Sybase公司推出的一種高級數據庫應用程序開發環境,在這個環境中開發數據庫應用程序,使用其專利技術——DataWindow,可以很輕鬆的開發出非常專業的數據庫應用程序。此外,PowerBuilder還支持多種數據庫,能夠很輕鬆的與目前流行的MS SQL Server、Oracle等企業級數據庫建立連接,處理各種事務。
PowerBuilder中的編程語言被稱為腳本(Script),實際上,使用PowerBuilder編寫的程序也是事件驅動,在界面設計上也完全做到了“所見即所得”,並完全使用面向對象的編程思想,它還提供了對OLE、DDE、Automation等技術的支持,下面就來説明如何在PowerBuilder中使用自動化技術。
首先,聲明一個OLE對象,如下:
OLEObject OLE_MyExcel
其次,創建該OLE對象,如下:
OLE_MyExcel =Create OLEObject
然後,使用PowerBuilder中的ConnectToNewObject函數來創建一個新的OLE對象,並且連接到該對象上,如下:
OLE_MyExcel. ConnectToNewObject ("ication")
調用該函數時,如果成功的話,返回值是0,否則就意味着調用失敗。
到此,自動化的準備工作已經完成,下面是具體的操作過程。
4 處理和打印表格
在調用Excel時,首先需要解決的一個問題是是否讓Excel可見,即是否為後台操作。這個問題可以簡單的通過設置Visible屬性加以控制,如果希望Excel後台運行,可以簡單的編寫如下語句:
OLE_ble=false
然後是打開指定的XLS文件,具體的語句如下:
OLE_ ("d:")
要操縱數據列表中的`數據單元,就必須對ActiveCell對象進行操縱,該對象是Application對象中一項屬性。將數據輸入到一個數據單元包括兩個步驟:第一是選擇一個數據單元,第二是將數據傳遞給它。選擇一個數據單元通過調用Range對象的Select()方法就可以完成,Range對象是用來選擇一個或多個數據單元的。Select()方法需要起始的行數、列數和結束的行數、列數來確定所選擇的數據單元。如果只選擇一個單獨的數據單元,就可以忽略結束的行、列數。當範圍被設定以後,將數據傳遞給ActiveCell對象(引用了被Range對象指定的數據單元)的FormulaR1C1屬性。如下:
OLE_e("c10")ct()
OLE_ulaR1C1 = sle_ //Sle_2為一個靜態文本框控件
OLE_e("J10")ct()
……
如果希望得到一系列數值的和,則需要首先使用Select()方法來指定需要求和的Cell的範圍,然後指定存放和的Cell位置,最後調用SUM方法即可,如下:
OLE_e(“A1:D1”)ct()
OLE_e(“E1”)vate()
OLE_ulaR1C1 = “=SUM(RC[-4]:RC[-1])”
當然還可以進行其他方面的設置,例如把字體設置為粗體(Bold),則可以編寫如下代碼:
OLE_e(“A1:E1”)ct()
OLE_ = True
至於其他的設置可以參考相關書籍。
至於表格的打印,則是簡單的調用PrintOut()方法即可,但是需要首先指定打印的範圍,如下是打印名為“Sheet1”的WorkSheet的代碼:
OLE_sheets("sheet1")vate()
OLE_tOut()
接下來是關於對XLS文件進行了改動以後,在關閉該文件時是否需要向用户提出警告。這個問題只需要簡單的對OLE_layAlerts屬性進行設置即可,為True時彈出警告框,為False時不彈出警告框,保存所作的修改。
最後一步,在作完所有工作以後,需要關閉自動化對象,撤銷與自動化服務器的連接,銷燬OLE對象,因為使用自動化程序,尤其是Word或Excel這樣的Office程序,所消耗的系統資源是很龐大的,因此在每次工作完成之後,需要釋放這部分系統資源。如下:
OLE_()
OLE_onnectObject()
destroy OLE_MyExcel
5 結束語
在使用了自動化技術以後,完滿的解決了原來的表格處理問題,可以非常方便的對各種表格進行小批量的處理與打印,非常靈活。如果能夠與企業的數據庫結合起來,通過外部程序將數據成批輸入,亦可解決大批量數據輸出的問題,不失為一條好的解決方案。
在實際應用中,通過與企業數據庫相結合,使用此方法自動填寫了包含了大量數據的XLS文件,並可以通過打印機打印出來.
參考資料
[1]James Foxall 《Teaching yourself Visual Basic in 24 hours》 Sams 11/2001
[2]樑科山,徐曉軍,劉濤 《某企業的PDM系統設計方案書》
[3]PowerBuilder幫助文件
相關文章
-
隱藏Excel單元格內容-Excel使用訣竅
導讀:想要隱藏Excel單元格內容,要如何操作?首先選擇要隱藏的單元格區域,在“格式”菜單中單擊“單元格”,單擊“數字”選項卡,在“分類”框中,單擊“自定義”,然後在“類型”框中鍵入三個半角的分號“;;;”。1. 隱藏單元格內 -
excel打印區域怎樣設置-excel打印區域設置圖文教程
可以養一隻嗎?全世界都能找到狐狸的身影,在很多人心中,這些小東西代表着狡猾與奸詐,但事實上它們也有很呆萌的一面。不管是温暖的樹林還是寒冷的雪海,它們都能肆意的生活,大大的耳朵時刻警惕着周圍的環境,即使被馴化後仍舊不 -
excel 自動生成表格,如工資表
現在有一個想法,不知道excel能不能夠實現,怎麼實現呢? 比如我做一個生產統計報表,把工人每天的'產量,單價什麼的都往裏面錄入,現在的問題是,我希望能通過錄入這個統計表格後,自動生成或者是導出到另一個表格,而內容是所有工人 -
會計技巧:用EXCEL表格算出生日期和性格
我的爸爸是一個典型的工作狂,每天早出晚歸,幾乎沒有時間陪我玩,看見別人和爸爸媽媽家人一起出玩,我都有幾分羨慕。我開始慢慢地不怎麼喜歡爸爸了。但是,有一件事卻改變了對爸爸的看法:那是前年的一個冬天,由於天突然下起大雪 -
如何簡便地用Excel打印工資條?
如題,請教:如何簡便地用Excel打印工資條?(用工資表直接生成) -
製作excel表格的步驟技巧計算機應用知識
生活中我們常常會見到各種表格,這些表格都可以很方便我們記錄一些事情,又或者是可以很好的將一些數據顯示出來。對於一些工作的人員來説,能夠用電腦製作出表格是非常重要的.,那麼在電腦上怎麼製作表格呢?下面,小編就來跟大 -
支付個人收入明細表(excel)如何鏈接工資表(excel)?
就是工資表內容變動時,支付個人收入明細表也隨之變動? -
excel表格中的超鏈接打不開怎麼辦?
導語:當excel文檔裏面的超鏈接無法打開,提示以下錯誤,而經確認,用户對超鏈接的目的文檔有完全控制權限。以下提供該問題的.解決辦法1、打開開始菜單,在運行裏輸入regedit,回車2、在註冊表中,導航到HKEY_CURRENT_ 項3、在默 -
財務報表格式EXCEL(資產負債表,利潤表,現金流量表) 含公式
作為入坑多年又荒廢多年的渣舊~來無恥的發教程啦=w=假髮子萌萌噠~v主要材料:印台卡紙橡皮磚硫酸紙所需工具:筆刀鉛筆墊板塑形橡皮製作步驟:第1步:首先在紙上畫出一隻假髮子~v第2步:用鉛筆在硫酸紙上把圖案描一遍,然後將硫酸紙 -
如何用Excel製作表格
工作中,我時常要用到表格,那麼如何用Excel來製作表格呢?下面由小編來為大家講解:步驟一:打開Excel表格編輯器。步驟二:做出基本框架,選中表格全部。步驟三:右擊鼠標,會出現一個表,點擊“設置單元格”。步驟四:會出現一個對話框