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.

主站蜘蛛池模板: 亚洲AⅤ无码日韩AV无码网站| 热这里只有精品国产热门精品| 国产无码制服丝袜| 激情爆乳一区二区| 国产91无码福利在线| 国产精品制服| 欧洲熟妇精品视频| 亚洲视频四区| 99精品热视频这里只有精品7| 成人夜夜嗨| 欧美色图第一页| 毛片基地美国正在播放亚洲 | 五月天福利视频| 91视频首页| 亚洲va在线∨a天堂va欧美va| 亚洲av成人无码网站在线观看| 91青青草视频| 女人18毛片一级毛片在线 | 国产乱肥老妇精品视频| 色噜噜在线观看| 青青青视频蜜桃一区二区| 最新国语自产精品视频在| 99国产在线视频| 亚洲天堂网2014| 国产99免费视频| 国产AV无码专区亚洲精品网站| 亚洲日韩图片专区第1页| 全部免费毛片免费播放| 亚洲成人网在线观看| 成人午夜视频网站| 麻豆精品在线播放| 污网站在线观看视频| 亚洲天堂.com| 爆操波多野结衣| 精品国产美女福到在线不卡f| 亚洲av日韩综合一区尤物| 青青青国产精品国产精品美女| 欧美精品啪啪一区二区三区| 国产精品一区二区无码免费看片| 国产综合色在线视频播放线视| 免费人成视网站在线不卡| 日本精品中文字幕在线不卡 | 97精品久久久大香线焦| 91国内在线视频| 国产精品999在线| 亚洲精品无码成人片在线观看 | 无码电影在线观看| 美女扒开下面流白浆在线试听| 一本大道视频精品人妻| 国产精品网址你懂的| 成人综合在线观看| 国产白浆视频| 国产国产人成免费视频77777| 3D动漫精品啪啪一区二区下载| 国产极品美女在线观看| 91美女在线| 国产综合亚洲欧洲区精品无码| 亚洲精品少妇熟女| a级毛片网| 国产女人爽到高潮的免费视频| 日本成人在线不卡视频| 国产精品lululu在线观看 | 国产男女免费视频| 中文成人在线视频| 国产资源免费观看| a亚洲视频| 亚洲综合色婷婷中文字幕| 成人免费网站在线观看| 麻豆精品在线视频| 在线网站18禁| 亚洲综合天堂网| 欧美午夜一区| 免费一级毛片在线观看| 国产在线97| 国产内射一区亚洲| 国产精品成人一区二区| 日本91在线| 精品欧美一区二区三区在线| 婷婷亚洲最大| 欧美日韩国产在线播放| 中文字幕佐山爱一区二区免费| 欧美精品v欧洲精品|