馮崗
摘 要:電子表格軟件Excel以其操作簡單、功能強大,被全社會廣泛應用。但隨著應用深入,用戶日益擴大的專業化需求與相對滯后的Excel通用工具之間的矛盾越來越突出。文章運用Automation技術,借助面向對象編程系統VC++,精心制作Excel文件操作類,使程序開發人員能夠將注意力集中于需要解決的問題,而不是如何操作Excel文件上。
關鍵詞:VC++;Automation;Excel;數據統計;正方現代教學管理信息系統
一、軟件闡述
Excel 是微軟辦公套裝軟件Office的一個重要組成部分,它可以進行各種數據的處理、統計分析操作。Automation自動化技術是微軟公司推出的一個技術標準,是向其他應用程序(稱為自動化客戶端)公開可編程對象(稱為自動化對象)的應用程序。VC++是一種面向對象的可視化集成編程系統。使用VC++編寫程序,可以通過自動化技術對Excel文件直接操作,能夠滿足各領域對數據管理工作的復雜需求。
要通過Automation技術對Excel進行操作,必須與Excel對象模型提供的對象進行交互。Excel提供了一百多個可能需要與之交互的對象,但程序設計主要集中在Application、Workbooks、Worksheets和Range對象中。
二、構建ExcelOperate類
ExcelOperate類通過Automation技術直接調用Excel內部函數,完成查找、讀取、寫入、存儲等基本操作。
(一)ExcelOperate類函數調用流程
根據Excel層次結構,要對其進行操作必須按順序創建和關聯一系列對象。ExcelOperate類函數調用流程,如下圖1。
(二)頭文件ExcelOperate.h
此處完成變量和函數的定義工作,如:保存用戶設定區域、構造和析構函數、打開excel數據表函數、載入數據表函數、讀取和寫入單元格函數、關閉數據表函數、設置區域函數、數據格式轉換函數等等。
(三)程序文件ExcelOperate.cpp
此處,完成引入頭文件、靜態成員初始化、構造和析構函數、初始化Excel服務器、載入表單、全表單查找、讀取單元格內容等操作。應用已經構建好的Excel數據表操作類,可以很方便的開發一系列應用功能,幫助用戶完成負責的統計操作。
三、考試成績不及格率統計
(一)需求分析
目前,廣泛使用的“正方現代教學管理信息系統”是集學籍、課程、成績等多方面管理功能為一體的綜合系統。其中,學生成績管理功能非常強大,不但支持網絡錄入,還包含大量查詢和統計功能。但教學管理的需求會根據實際情況不斷發生變化。日前,部門領導要求將期末必修考試課成績,以教師、科目、班級的不同分別統計不及格率;以此作為評價任課教師教學質量的部分依據。考慮到教師可能給不同系、多個班講授多門課程,統計完成后應輸出如下信息:“教師編號、教師姓名、課程名稱、班級、不及格率”。
(二)總體設計
用戶將需要查詢的任課教師信息保存到Excel表單,在用戶界面中完成設置;主程序借助ExcelOperate類對Excel數據源文件組進行查詢、統計,并將統計結果保存為Excel文件的形式供用戶查閱,如圖2所示。
(三)編程要點
每次從“教師信息表”中取出一條教師編號,都將遍歷整個數據源文件組,找到所有與該教師相關的成績條目。分別判斷學年、學期是否與用戶選擇一致,課程性質、考核方式是否為必修考試課。如果條件均滿足,則累計成績信息。
四、結語
本文使用VC++2010編制Excel文件操作類,并應用此類完成學院級期末考試不及格率的運算工作。Excel是電子表格工具軟件,當用戶需要處理的數據量較少時,運算效率較高;但隨著數據量地增大,效率越來越低,可使用專業數據庫代替Excel成為存儲核心。考慮到Excel已被廣泛使用,可用于組織用戶層面數據;程序底層,可通過導入的方式將數據轉存至位于軟件核心位置的專業數據庫中,從而使軟件系統能夠兼顧方便用戶使用和提高執行效率等兩方面需求。
參考文獻:
[1]promethous.自動化服務器.[EB/OL].http://baike.baidu.com/view/262890.htm, 2009-12-30.
[2]裴大明,南亦民.VC++中基于ActiveX Automation技術的客觀題自動閱卷實現[J].電腦知識與技術,2010,6(20):5510-5512.
[3]郝建,張紅瑞,呂延崗.VC++和Excel對象接口的研究與應用[J].石家莊鐵道學院學報(自然科學版),2009,22(4):75-78.