亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

        摘要:基于VC平臺開發(fā)的應(yīng)用軟件中,為方便自動地生成規(guī)范化信息處理報告,設(shè)計了擬生成報告的Office Word格式模板,構(gòu)建了VC驅(qū)動Office Word創(chuàng)建Word報告文件、自動填入結(jié)果參數(shù)和統(tǒng)計圖表,形成可打印正式報告的技術(shù)方法,并以光伏陣列優(yōu)化配置報告為例進(jìn)行了報告自動生成方法的編程實現(xiàn)。實驗表明該方法生成的信息處理報告結(jié)構(gòu)靈活、圖文并茂、可適應(yīng)各種需求。

        關(guān)鍵詞:VC驅(qū)動Word;報告自動生成;OLB類型庫

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

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

        1 VC調(diào)用MS Word的開發(fā)環(huán)境配置方法

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

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

        導(dǎo)入MSWORD.OLB之后,為保證VC調(diào)用MS Word生成報告時的便捷性,可將某些類庫中的基本類進(jìn)行二次自定義封裝,形成自定義類,減少后續(xù)使用時的重復(fù)編碼,節(jié)約開發(fā)工作量。[4]例如將光標(biāo)操作類和字符寫入類相結(jié)合便可定義報告生成過程中的寫數(shù)據(jù)類;光標(biāo)操作類、表格創(chuàng)建類與字符寫入類相結(jié)合便可定義報告生成過程中的創(chuàng)建表格并寫入數(shù)據(jù)類。將類庫中的基類根據(jù)編程需求進(jìn)行二次定義、封裝帶來的好處十分明顯,是面向?qū)ο蟪绦蜷_發(fā)理念的最好體現(xiàn)。

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

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

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

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

        Report=m_wdDocs.

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

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

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

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

        當(dāng)VC應(yīng)用程序產(chǎn)生統(tǒng)計結(jié)果后,我們可能希望在報告中插入包含統(tǒng)計數(shù)據(jù)的表格,這時需要先定義表格結(jié)構(gòu)tbs,它擁有的行列數(shù)為nRow、nColumn,并按此定義生成該表格。[6]具體語句如下:

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

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

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

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

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

        m_wdSel.TypeText(szText)/*將數(shù)據(jù)szText插入當(dāng)前單元格*/

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

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

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

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

        writeWord,而光標(biāo)移動操作則通過系統(tǒng)類實現(xiàn)。

        光伏陣列配置報告圖

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

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

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

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

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

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

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

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

        3 結(jié)語

        設(shè)計了一種VC平臺驅(qū)動Microsoft Office Word,自動生成結(jié)構(gòu)合理、圖文并茂的標(biāo)準(zhǔn)化數(shù)據(jù)處理報告方法。應(yīng)用此項技術(shù),可實現(xiàn)應(yīng)用軟件系統(tǒng)數(shù)據(jù)記錄及報告文檔的自動化生成,有效減少系統(tǒng)用戶的人工文檔處理工作量。[9]借鑒文中介紹的相關(guān)技術(shù),還有望實現(xiàn)Excel、PowerPoint等Microsoft Office系列文檔的自動生成。

        參考文獻(xiàn):

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

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

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

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

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

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

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

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

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

        快射视频网站在线观看| 成人免费777777被爆出| 痉挛高潮喷水av无码免费| 国产精品免费大片| 久久久久久久妓女精品免费影院| 欧洲乱码伦视频免费| 国产成人精品一区二区日出白浆 | 潮喷失禁大喷水aⅴ无码| 亚洲精品乱码久久久久久蜜桃不卡 | AV无码系列一区二区三区| 亚洲综合色视频在线免费观看| 成人av资源在线观看| 欲女在线一区二区三区| 国产在线精品一区二区三区直播| 精品久久香蕉国产线看观看亚洲| 日韩a无v码在线播放| 亚洲综合国产精品一区二区99| 国产剧情无码中文字幕在线观看不卡视频 | 精品黑人一区二区三区| 久久精品亚洲一区二区三区画质 | 日本丰满妇人成熟免费中文字幕| 强d漂亮少妇高潮在线观看| 天天色天天操天天日天天射| 98色婷婷在线| 天天天天躁天天爱天天碰| 传媒在线无码| 亚洲精品视频一区二区三区四区 | 91精品国产综合久久青草| 亚洲av成熟国产一区二区| 久久亚洲日韩精品一区二区三区| 一本大道东京热无码| 亚洲日韩区在线电影| av国产自拍在线观看| 国产美女做爰免费视频| 有码精品一二区在线| 超碰性爱| 人妻熟女翘屁股中文字幕| 亚洲日韩一区二区三区| 久久99热精品免费观看欧美| 色婷婷av一区二区三区不卡| 久久精品国产亚洲av成人文字|