999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種VC驅動Office組件的報告自動生成方法

2019-10-21 10:00:23拜曉蒙孔月萍傅彥茹俞鍶浩
科技風 2019年14期

拜曉蒙 孔月萍 傅彥茹 俞鍶浩

摘要:基于VC平臺開發的應用軟件中,為方便自動地生成規范化信息處理報告,設計了擬生成報告的Office Word格式模板,構建了VC驅動Office Word創建Word報告文件、自動填入結果參數和統計圖表,形成可打印正式報告的技術方法,并以光伏陣列優化配置報告為例進行了報告自動生成方法的編程實現。實驗表明該方法生成的信息處理報告結構靈活、圖文并茂、可適應各種需求。

關鍵詞:VC驅動Word;報告自動生成;OLB類型庫

在絕大多數Visual C++(以下簡稱VC)平臺開發下的應用軟件系統中,往往具備信息處理和數據統計功能,它們的加工結果一般會用兩種方式輸出,其一是輸出到終端屏幕上供用戶瀏覽,其二是編輯成特定樣式的報告文件供打印輸出成紙質版,后一種方式需要設計處理結果或統計圖表輸出到可保存磁盤文件的方式,[1]后期可能還需要人工調整成具有特定版面格式的報告文件。現有技術往往將結果數據保存到文本文件中,但文本文件無法指定具體的輸出格式和字體效果。[2]因此,考慮在VC平臺下開發程序調用事先編輯好樣式的Microsoft Office Word(以下簡稱MS Word)報告,設計能在特定位置寫入計算結果、插入統計表格和圖片、可自動生成軟件信息處理報告的VC程序,實現標準樣式報告的自動生成。

為達到標準格式數據處理報告自動生成的目的,需要完成三個方面的工作。首先需設計用戶期望的標準格式MS Word 報告模板;第二是配置VC開發平臺下啟動MS Word的開發環境;第三是掌握VC向MS Word文件中寫入數據、表格、圖形、圖像的編程方法。下文將論述其中第二、三項工作的實現方法。

1 VC調用MS Word的開發環境配置方法

要想在VC程序中調用Microsoft Office,必須提前加入Office組件的對象類庫,方可在后續程序中使用該類庫中的諸多功能。其中,欲調用Office的Excel需要加入EXCEL9.OLB對象類型庫,欲調用Office的PowerPoint需要加入MSPPT.OLB對象類型庫,而調用Office的Word則需要加入MSWORD.OLB[2]對象類型庫。

在一個欲調MS Word的MFC工程項目中,選擇創建類向導選項,再打開界面右方出現的“Add Class/from a library”,在Microsoft Office的安裝目錄下(例如C:/Program Files/Microsoft Office/Office16)找到MSWORD.OLB類型庫,在該類型庫中選擇需要調用的類名進行導入即可。在驅動MS Word生成報告的過程中,常用的類有Application、Document、Selection等。類導入完成后,VC系統會自動生成“msword.h”和“msword.cpp”文件。至此,后續VC程序即可調用導入類型庫中的類,只要在.h或.cpp文件中添#include”msword.h”即可。[3]

導入MSWORD.OLB之后,為保證VC調用MS Word生成報告時的便捷性,可將某些類庫中的基本類進行二次自定義封裝,形成自定義類,減少后續使用時的重復編碼,節約開發工作量。[4]例如將光標操作類和字符寫入類相結合便可定義報告生成過程中的寫數據類;光標操作類、表格創建類與字符寫入類相結合便可定義報告生成過程中的創建表格并寫入數據類。將類庫中的基類根據編程需求進行二次定義、封裝帶來的好處十分明顯,是面向對象程序開發理念的最好體現。

2 VC對MS Word文件的操作方法

在完成自定義類封裝后,便可進入VC自動生成MS Word報告的程序設計階段,下面將分別陳述VC創建MS Word文件的方法,以及VC對MS Word文件的數據寫入、插入表格、插入圖形或圖像文件的編程方法。

首先,需要調用Office Word應用程序創建一個Word文檔。下述語句為Word文檔的建立方法,其中,Report為新創建的MS Word報告文件。

m_wdDocs.AttachDispatch(m_wdApp.GetDocuments())/*定義文檔*/

Report=m_wdDocs.

Add(&Template,&NewTemplate,&DocumentType,&Visible)/*創建文檔Report*/

文檔建立后,如果要在文檔的指定位置寫入數據,可以使用下面語句。其中,szText變量中存有欲寫入數據,通過該語句可將數據szText寫入文檔Report中。[5]

Selection::MoveDown(VARIANT*Unit,VARIANT*Count,VARIANT*Extend)/*光標移動*/

m_wdSel.TypeText(szText)/*寫入數據*/

當VC應用程序產生統計結果后,我們可能希望在報告中插入包含統計數據的表格,這時需要先定義表格結構tbs,它擁有的行列數為nRow、nColumn,并按此定義生成該表格。[6]具體語句如下:

Tables tbs = m_wdDoc.GetTables()/*定義表格*/

tbs.Add(m_wdSel.GetRange(),nRow,nColumn,&vtDefault,&vtAuto)/*創建表格*/

隨后,可用Cell語句定位欲操作表格的行、列位置,再用Select()選中定位的當前單元格,并向該單元插入數據szText。[7]具體編程語句如下:

Cell c = m_wdTb.Cell(nRow,nColumne)/*定位表格的行、列位置*/

c.Select()/*選中當前單元格*/

m_wdSel.TypeText(szText)/*將數據szText插入當前單元格*/

還可以根據需求向Word文件中插入JPG、BMP、PNG等多種文件格式的圖像或圖形,操作方法是先定位插入位置,之后通過函數image.AddPicture()插入圖片,即:

InlineShapes image = m_wdSel.GetInlineShapes();/*定位當前位置*/

image.AddPicture(filePath,COleVariant((short)FALSE),COleVariant((short)TRUE),&_variant_t(m_wdSel.GetRange()))/*插入圖片*/

最后,以我們開發的“光伏陣列優化配置系統報告生成”功能為樣例,闡述VC生成圖1所示配置報告的編程方法。如圖1所示,報告的題目、一級二級標題都已提前設置成了標準文本格式,[8]報告生成過程中,只需要根據每次光伏陣列優化方案的配置結果進行數據寫入,例如,在2017年1月1日,對某地(緯度94.7N、經度40.1E、海拔高度1.14m)建設的光伏電站進行了仿真排布優化設計,形成的配置報告中需要在特定位置分別插入“建設地點經緯度、配置方案仿真設計時間、光伏陣列排布設備類型、設備結構示意圖”等設計結果數據。為此,我們二次構造了寫入固定文本、插入圖片的自定義類

writeWord,而光標移動操作則通過系統類實現。

光伏陣列配置報告圖

具體的編程思路是,①設置寫入數據的字體、字號;②調用writeWord.WriteTitleFirst()語句寫入固定樣式的標題、說明性文本;③待插入配置參數可通過控制光標移動及系統方法m_wdSel.TypeTe xt(szText)寫入報告的指定位置;④獲取待插入圖片路徑后,使用insertImage函數即可插入配置圖片。相應的VC語句如下:

this>SetFont("黑體",13);/*設置字體、字號*/

writeWord.WriteTitleFirst("1、建設地經緯度:\\n")/*寫入固定文本*/

Selection::MoveDown(VARIANT*Unit,VARIANT*Count,VARIANT*Extend)/*光標移動*/

m_wdSel.TypeText(szText)/*數據szText寫入指定位置*/

CString path = getCurrentPath()+\\\\..\\\\data_info\\\\

NSProImage.bmp/*獲取需插入圖片的路徑*/

writeWord.insertImage(path)/*插入配置圖片*/

3 結語

設計了一種VC平臺驅動Microsoft Office Word,自動生成結構合理、圖文并茂的標準化數據處理報告方法。應用此項技術,可實現應用軟件系統數據記錄及報告文檔的自動化生成,有效減少系統用戶的人工文檔處理工作量。[9]借鑒文中介紹的相關技術,還有望實現Excel、PowerPoint等Microsoft Office系列文檔的自動生成。

參考文獻:

[1]張雪詠,馬紅濤,趙建峰.通過VC程序操縱Word的實現方法[J].電子技術與軟件工程,2017(11):7981.

[2]盧耀華.基于Word自動化的學位論文寫作輔助系統[D].北京理工大學,2011.

[3]陳特放,方斌.VC平臺下基于OLE的Word自動化操作應用[J].計算機應用與軟件,2009,26(09):123125.

[4]李素岐,邱崇濤,房江奇.Word技術在辦公自動化中應用[J].科技展望,2016,26(03):34.

[5]劉安宇,劉德祥,鄭立捷.基于VC++.NET的ADO數據庫連接與Word表格自動生成[J].電腦知識與技術(學術交流),2007(02):316318.

[6]劉志江,羅欣,周博,陳思宇.VC++平臺下基于OLE技術的Excel圖表自動化輸出[J].煤礦機械,2013,34(08):272275.

[7]王怒濤,李大凱,李丹,王超.VC++的Word文檔中的表與圖自動生成技術[J].石油工業計算機應用,2015(02):2023+3.

[8]劉春雷,劉春雨.Word自動化合并郵件在VC中的實現與應用[J].信息技術,2004(08):7576+80.

[9]王永鋒.VC++操作Word實現檢測報告的自動化[A].中國金屬學會.第195場中國工程科技論壇——中國科學儀器設備與試驗技術發展高峰論壇(PFIT'2014)、第四屆中國能力驗證與標準樣品論壇(4th RM & PT)、ICASI'2014 CCATM'2014國際冶金及材料分析測試學術報告會會議摘要[C].中國金屬學會:,2014:1.

主站蜘蛛池模板: 国产va在线观看免费| 亚洲欧洲免费视频| 久久久久亚洲精品无码网站| 国产精品偷伦视频免费观看国产 | 亚洲国产精品VA在线看黑人| 色妞永久免费视频| 日本午夜精品一本在线观看 | 精品久久蜜桃| 国产综合精品日本亚洲777| 天天综合亚洲| 国产免费一级精品视频| 亚洲高清资源| 国产人碰人摸人爱免费视频| 亚洲成在线观看 | 国产日韩欧美精品区性色| 国产无遮挡猛进猛出免费软件| 亚洲人成在线精品| 亚洲欧美另类色图| 国产福利一区二区在线观看| 久久精品电影| 亚洲精品无码抽插日韩| 超清无码熟妇人妻AV在线绿巨人 | 国产精品网拍在线| 免费一级毛片在线播放傲雪网| 国产精品亚欧美一区二区| 欧美日韩国产一级| 欧美一级大片在线观看| 国产极品嫩模在线观看91| 中文字幕免费在线视频| 国产综合色在线视频播放线视| 精品国产免费观看一区| 国产精品免费福利久久播放| 欧美国产日产一区二区| 国产精品香蕉| 成人国产免费| 亚洲狠狠婷婷综合久久久久| 午夜不卡视频| 在线日韩日本国产亚洲| 久久久无码人妻精品无码| 国产精品极品美女自在线网站| 国产成人乱无码视频| 国内精品手机在线观看视频| 天天色综网| 在线观看精品国产入口| 午夜限制老子影院888| 中文天堂在线视频| 亚洲精品成人片在线观看| 精品国产中文一级毛片在线看| 搞黄网站免费观看| 国产91高跟丝袜| 人妻21p大胆| 国产精品对白刺激| 精品视频福利| 婷婷伊人五月| 直接黄91麻豆网站| 亚洲欧美国产五月天综合| 亚洲欧美成人在线视频| 青草视频免费在线观看| 国产精品19p| 国产成人永久免费视频| 国产成人av一区二区三区| 国产国语一级毛片| 久热精品免费| 精品小视频在线观看| 欧美一区二区人人喊爽| 国产精品99一区不卡| 色婷婷成人| 国产真实乱了在线播放| 国产精品一老牛影视频| 国产精品原创不卡在线| 亚洲精品欧美日本中文字幕| 亚洲人成成无码网WWW| 久久天天躁狠狠躁夜夜躁| 99精品伊人久久久大香线蕉| 国产人成网线在线播放va| 亚洲无码精彩视频在线观看| 精品一区二区久久久久网站| 青青久视频| 亚洲熟女偷拍| 日韩在线第三页| 欧美日在线观看| 无码内射在线|