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

基于OLE的Word自動生成Excel題庫

2015-04-16 01:29:58陳希高淼
電腦與電信 2015年7期
關鍵詞:定義模型

陳希高淼

(1.武漢工程大學郵電與信息工程學院,湖北 武漢 430073;2.武漢軟件工程職業學院,湖北 武漢 430205)

1 引言

在目前的在線考試系統中,如果需要對題庫進行更新通常采用的格式為Excel,這種格式可以大批量地將題目導入到考試系統中。但目前在網絡中找到的或者自己編寫的題目經常都是以Word格式存在,這對于大量題目的更新操作帶來很多不便[1]。使用者必須逐題從Word轉換成Excel格式,然后再導入到系統。為了能高效簡潔地完成這個過程,在VS2013的開發平臺上,使用OLE技術利用Word、Excel對象模型完成此操作。

2 OLE技術和Word、Excel對象模型

OLE(Object Linking and Embedding,對象連接與嵌入)不僅是桌面應用程序集成,而且還定義和實現了一種允許應用程序作為軟件“對象”(數據集合和操作數據的函數)彼此進行“連接”的機制,這種連接機制和協議稱為組件對象模型(Component Object Model),簡稱COM。OLE可以用來創建復合文檔,復合文檔包含了創建于不同源應用程序、有著不同類型的數據,因此可以把文字、聲音、圖像、表格、應用程序等組合在一起。OLE技術不僅能使應用程序作為服務器被其它程序調用,還可以作為客戶端調用支持OLE技術的其它程序[2]。為了能使用OLE對WORD、EXCEL進行編程,還需要了解WORD、EXCEL對象模型。

2.1 Word對象模型

Word對象模型提供了數百個可與之交互的對象。這些對象排列在一個與用戶界面密切相關的層次結構中。層次結構頂部的對象是Application對象。此對象表示Word的當前實例。Application 對象包含 Document、Selection、Bookmark和Range對象[3]。

(1)Application對象

Application對象表示Word應用程序本身。

(2)Document對象

Document對象是Word編程的關鍵,它表示文檔及其所有內容。

(3)Selection對象

Selection對象表示當前選中的區域(高亮),沒有選中區域時代表光標點。

(4)Range對象

Range對象表示一塊區域,與Selection類似,一般不可見。Range對象的數量可以有多個。

(5)Bookmark對象

Bookmark對象表示書簽。

2.2 Excel對象模型

Excel對象模型和Word對象模型類似,下面介紹最重要的對象:

(1)Application對象

Application對象表示Excel應用程序本身。

(2)Workbook對象

Workbook對象表示Excel應用程序內的單個工作簿。

(3)Worksheet對象

Worksheet對象是Worksheets集合的成員。

(4)Range對象

Range對象是Excel應用程序中最常用的對象。

通過這4個主要對象完成EXCEL編程[4]。

3 VS2013平臺下自動化操作的實現

本次程序的開發環境為VS2013+Word2010+Excel2010,使用的語言為C++。

3.1 建立自動化模式

在VS2013中創建MFC工程,非Unicode。在創建MFC工程時候,高級功能中可以勾選自動化。那么在App類的InitInstance()類中將自動生成OLE初始化程序。如果沒有勾選自動化,需要自己在函數中添加如下代碼:

3.2 添加對象

要調用Word、Excel提供的OLE自動化對象,可以通過Word、Excel提供的對象庫實現。對象庫也稱為類型庫,類型庫詳細說明了一個自動化客戶端為對象需要調用的方法和屬性的信息[5]。其添加方法如下:

(1)添加類型庫

在項目解決方案上右鍵選擇類向導,然后在添加類的下拉框中選擇“類型庫中的MFC類”。在彈出的對話框中選擇相應內容,如圖1所示:

圖1 Word、Excel對象類的添加

添加之后如果編譯遇到錯誤,Not enough actual parameters for macro'DialogBoxW'。解決方法是在CRange類中DialogBox()前面添加下劃線變成_DialogBox()即可。

(2)注銷每個引入的頭文件的import行

例如:

//#import"D∶\ProgramFiles(x86)\MicrosoftOffice\Of -fice14\MSWORD.OLB"no_namespace

(3)設置默認參數和定義對象

在很多函數的使用過程中需要用到ColeVariant類型的變量,所以提前在程序開頭定義一些默認參數以便后續使用。

COleVariantcovZero((short)0),covTrue((short)TRUE),covFalse((short)FALSE),covOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR),covDocxType((short)0);

表1 定義對象

3.3 讀取文檔內容

使用open()函數打開文檔,函數使用參數中需要用到默認值的可以使用上一步定義的ColeVariant類型的變量。在打開文檔后根據需要設置讀取方式,本文采用段讀取。代碼如下:

//打開文檔

docxs=wordApp.get_Documents();

docx=docxs.Open(COleVariant(strPath),covOptional,cov-False,covOptional,covOptional,covOptional,covOptional,covO-ptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional,covOptional);

3.4 寫入Excel表格

使用之前定義的對象完成Excel表格初始設置,然后使用SetString()函數將上一步讀取的內容寫入到Excel中。代碼如下:

3.5 保存關閉和釋放

將內容寫入到Excel表格后就要進行保存、關閉和釋放。代碼如下:

workbook.SaveCopyAs(COleVariant(file_name));//保存docx.Close(covFalse,covOptional,covOptional);//關閉workbook.Close(covTrue,covOptional,covFalse);//關閉

//釋放資源Word釋放方式相同只列出Excel worksheet.ReleaseDispatch();worksheets.ReleaseDispatch();

4 結語

Word文檔和Excel電子表格的自動化操作在目前的在線考試系統中有著重要的作用,利用OLE技術可以很方便地將Word文檔的題目導入到Excel表格中,這使得在線考試系統的題庫擴充變得更加容易。隨著信息化技術的不斷提升,越來越多的課程將會采用在線考試系統來完成做題和考試。本文提供的方法將極大地提高在線考試題庫的數量。

[1]陳莉,徐芳.基于VBA編程的網絡教學試題庫批量試題錄入研究[J].軟件導刊,2015,(4):30-31,32.

[2]程松濤.基于VC++的Word自動化操作研究[J].電腦編程技巧與維護,2015,(04):33-34.

[3]Word 對象模型[OL].https://msdn.microsoft.com/zh-cn/library/kw65a0we.aspx.

[4]Excel對象模型[OL].https://msdn.microsoft.com/zh-cn/library/wss56bz7.

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

猜你喜歡
定義模型
一半模型
永遠不要用“起點”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
重要模型『一線三等角』
定義“風格”
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
山的定義
公務員文萃(2013年5期)2013-03-11 16:08:37
主站蜘蛛池模板: 9966国产精品视频| 韩日无码在线不卡| 国产高清精品在线91| 99在线免费播放| 中国一级特黄大片在线观看| 亚洲第一在线播放| 亚洲视频a| 无码人中文字幕| 99久久国产精品无码| 成人国产精品一级毛片天堂| 高潮爽到爆的喷水女主播视频 | 99这里只有精品免费视频| 亚洲日韩精品欧美中文字幕| 国产精品久久久久无码网站| 五月天在线网站| 免费中文字幕在在线不卡| 午夜在线不卡| 久久国产拍爱| 毛片在线播放网址| 一本视频精品中文字幕| 一级做a爰片久久免费| 久草青青在线视频| 18黑白丝水手服自慰喷水网站| 久久国产精品麻豆系列| 999精品在线视频| 麻豆国产精品| 国产乱肥老妇精品视频| 刘亦菲一区二区在线观看| 在线精品自拍| 91亚洲精选| 亚洲天堂免费| 日本亚洲欧美在线| 色综合久久88| 国产成本人片免费a∨短片| 亚洲AV人人澡人人双人| 视频国产精品丝袜第一页| 国产va欧美va在线观看| 伊人久久大香线蕉aⅴ色| 国产欧美日韩一区二区视频在线| 亚洲无码高清视频在线观看 | 亚洲人成网站18禁动漫无码| 亚洲一本大道在线| 在线视频精品一区| 一本大道香蕉高清久久| 国产精品手机在线观看你懂的| 日韩欧美在线观看| 日本日韩欧美| 日韩精品久久久久久久电影蜜臀| 东京热一区二区三区无码视频| 午夜精品区| 亚洲侵犯无码网址在线观看| 国产无码性爱一区二区三区| 一区二区欧美日韩高清免费 | 无码网站免费观看| 国产肉感大码AV无码| 最新精品国偷自产在线| 欧美啪啪精品| 国产91丝袜在线播放动漫| 亚洲人人视频| 伊人久热这里只有精品视频99| 国产又爽又黄无遮挡免费观看| av一区二区三区高清久久| 无遮挡国产高潮视频免费观看| 欧美一区精品| 四虎成人在线视频| 中文国产成人精品久久| 亚洲男女在线| 欧美亚洲第一页| 制服丝袜一区二区三区在线| 亚洲国产在一区二区三区| 特级aaaaaaaaa毛片免费视频 | 亚洲欧美在线综合一区二区三区| 亚洲国产午夜精华无码福利| 日本欧美一二三区色视频| 在线播放91| 国产三级成人| 欧美一级大片在线观看| 一级毛片免费不卡在线| 五月天久久综合国产一区二区| 亚洲六月丁香六月婷婷蜜芽| 丁香五月婷婷激情基地| 欧美日韩一区二区三区在线视频|