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.

主站蜘蛛池模板: 无码一区18禁| 欧美一级大片在线观看| 自拍偷拍一区| 日韩精品一区二区三区视频免费看| 日本一区高清| 又爽又大又黄a级毛片在线视频 | 99久久精品免费看国产免费软件| 精品無碼一區在線觀看 | 免费中文字幕在在线不卡| 综合色亚洲| 亚洲狼网站狼狼鲁亚洲下载| AV色爱天堂网| 无码有码中文字幕| 日本人妻丰满熟妇区| 在线观看精品国产入口| 人妻一区二区三区无码精品一区| 成人噜噜噜视频在线观看| 最新加勒比隔壁人妻| 强奷白丝美女在线观看| 国产精品人莉莉成在线播放| 国产十八禁在线观看免费| 热热久久狠狠偷偷色男同 | 久久国产精品嫖妓| 日韩精品无码一级毛片免费| WWW丫丫国产成人精品| 性色一区| 中文纯内无码H| 农村乱人伦一区二区| 欧美精品伊人久久| 国产又黄又硬又粗| 2021国产精品自产拍在线| 美女亚洲一区| 天天做天天爱天天爽综合区| 亚洲国产精品一区二区高清无码久久| 亚洲国产精品不卡在线| 老司机午夜精品视频你懂的| 91免费观看视频| 久久6免费视频| 国产精品嫩草影院av| 欧美一级在线| 玩两个丰满老熟女久久网| 亚洲无码91视频| 欧美午夜理伦三级在线观看| 亚洲色图欧美一区| 毛片免费网址| 大乳丰满人妻中文字幕日本| 国产电话自拍伊人| 成人一区在线| 免费毛片网站在线观看| 色婷婷综合激情视频免费看| 久久性视频| 国产日韩欧美在线视频免费观看| 亚洲精品你懂的| 永久毛片在线播| 色妞www精品视频一级下载| 广东一级毛片| 国产亚洲精品va在线| 久久久久亚洲AV成人网站软件| 国产色伊人| 亚洲无码高清免费视频亚洲| 亚洲天堂视频在线播放| 伊人色婷婷| 欧美在线导航| 91热爆在线| 国产成人精品男人的天堂| 最新亚洲人成网站在线观看| 国产成人高清在线精品| 亚洲欧洲日韩综合| 久久香蕉国产线| 亚洲精品无码在线播放网站| 亚洲激情区| 久久综合九九亚洲一区| 国产欧美日韩精品综合在线| 在线观看欧美精品二区| 凹凸国产分类在线观看| 国产成人精品一区二区不卡| 一本二本三本不卡无码| 99这里只有精品免费视频| 国产一二三区视频| 99久久国产自偷自偷免费一区| 国产av色站网站| 精品人妻一区二区三区蜜桃AⅤ|