郭玉樂 內蒙古科技大學信息工程學院和內蒙古包鋼鋼聯股份有限公司煉鐵廠
劉丕亮 內蒙古科技大學信息工程學院
利用C++ Builder實現Excel數據及圖表生成
郭玉樂 內蒙古科技大學信息工程學院和內蒙古包鋼鋼聯股份有限公司煉鐵廠
劉丕亮 內蒙古科技大學信息工程學院
Microsoft Office中的Excel是一款實用性很強的表格處理軟件,可以方便快捷的進行數據計算、處理,而它的圖表功能,也可以直觀的反映數據情況。在C++ Builder的開發環境中,可以利用OLE實現Excel數據及圖表的自動生成,使得生成高爐生產日報更加及時、數據更加準確、直觀,并且提高了工作效率。本文對C++ Builder實現Excel的數據導出、頁面設置、圖表生成等過程進行了詳細的介紹。
C++ Builder Excel OLE 圖表
煉鐵廠高爐每天要手工填寫紙質生產班報,再把數據錄入到生產程序中。這樣,容易導致數據在抄寫錄入過程中出現誤差、不一致,并且崗位職工的勞動強度比較大。
隨著煉鐵廠信息化水平的逐步提升,要求高爐班報電子化,便于信息快速傳遞、數據資源共享。煉鐵廠常用開發工具是C++ Builder,C++ Builder環境中提供了QReport組件可以完成簡單的報表設計功能。由于高爐班報數據量大,結構復雜,用程序直接生成、打印報表實現起來比較困難。Excel不僅可以實現復雜報表,并且有強大的數據統計分析功能,但是Excel數據不便于存儲和靈活查詢。鑒于以上原因,決定利用現有生產管理系統數據自動生成Excel班報。
2.1 Excel的自動啟動
為了方便與Office套件進行數據共享,C++ Builder中定義了一些OLE對象來完成此操作,對于Excel是Excel.Application對象,用這種方法對Excel文件進行操作,必須要借助Excel. Application對象的屬性和方法來進行。
創建應用對象:

程序首先建立Excel.Application對象,再將其與指定的Excel文件關聯,并打開文件,再獲得工作薄對象,據此選中所需的工作表作為當前工作表,此后即可讀取與寫入指定的單元格的內容。除對數據操作外,Excel.Application對象的方法還可對字體、顏色、工作表名、表格格式等進行設置。
2.2 向Excel導出數據
連接存儲過程,傳遞參數。實現數據查詢,并輸出到Excel中:

3.1 圖表類型
圖表類型分為標準類型和自定義類型,在此著重介紹折線圖的相關知識。折線圖共有8種樣式。選擇圖表類型的語法形式為:

3.2 圖表設置
xlRows表示數據是以列來做排列,xlColumns表示用行來做排列。如果是xlRows,選擇范圍的第一列就是X軸數據的名稱,第一行是Y軸數據的名稱,其余的作為圖表里的數值。
3.3 實現方法
3.3.1 利用OLE實現Excel數據及圖表的自動生成

設置圖標類型,這里設置的為折線圖
Chart.OlePropertySet("ChartType",4);
3.3.2 生成高爐班報展示(圖1)

圖1 高爐班報
[1]薩師煊.數據庫系統概論[M].北京:高等教育出版社,清華大學出版社,2005
[2]Kent Reisdorph,等.C++ Builder4技術內幕[M].徐新華,譯.人民郵電出版社,2000:411-453
[3]杜希國,利用C++ Builder實現Excel個性化頁面設置[J].電腦編程技巧與維護,2011,(3):29-31
[4]于洪章.在C++ Builder中用OLE實現Excel的存取與共享[J].福建電腦,2008,(2):169-170
[5]云舟工作室.中文版Excel2000VBA一冊通.北京:人民郵電出版社,2000:277-291