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

        ?

        基于COM組件的Word試卷生成技術(shù)的研究

        2015-11-17 11:56:56周文君劉柱鴻
        電腦知識與技術(shù) 2015年24期

        周文君 劉柱鴻

        摘要:該文分析了COM組件技術(shù),并對Word對象中的重要接口進行了說明,采用COM組件技術(shù),將數(shù)據(jù)庫中的試卷輸出到Word軟件中,生成Word試卷,并對試卷中各個組成部分進行自動格式化處理,可供直接打印輸出,提高了工作效率。

        關(guān)鍵詞:COM組件技術(shù);Word格式試卷;試卷輸出;Office編程

        中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)24-0062-02

        在智能題庫系統(tǒng)的設(shè)計中,當系統(tǒng)按照組卷約束成功組卷之后,每一份試卷的相關(guān)信息都保存在數(shù)據(jù)庫中,根據(jù)需要讀取數(shù)據(jù)庫中的信息進行試卷輸出。常見的考試形式有在線考試和線下考試兩種,針對線上考試,試卷通常輸出為HTML文檔;針對線下考試,試卷通常輸出為Word文檔。在高級語言中實現(xiàn)對Word文檔的控制需要導入COM組件,通過COM組件中提供的各種對象的屬性和方法來實現(xiàn)對Word文檔的操控。本文基于Visual Studio2010平臺,采用C#編程語言,引入COM組件實現(xiàn)對Word 2010文檔的控制,自動生成格式規(guī)范的Word試卷。

        1 COM組件技術(shù)

        組件技術(shù)的出現(xiàn)是為了實現(xiàn)組合軟件。組件實際上是一些小功能專一的可執(zhí)行程序,它們可以為操作系統(tǒng)、應用程序提供服務。利用已有的組件,用戶可以高效地創(chuàng)建一個應用程序,當應用需要升級或是重新定制時,只需要將其中的某一些組件用新的替換掉就可以,而不需要全盤重來,這樣大大地提高了軟件生產(chǎn)力。

        COM(組件對象模型,Component Object Model)是微軟公司推出的產(chǎn)品,在進行COM組件開發(fā)時,微軟對其的定位是“基于對象的程序設(shè)計模型”,其主要目的在于促進軟件的互操作性。COM組件的特性是與平臺無關(guān)、與語言無關(guān),可以在任意一種平臺下,使用各種不同的高級語言去調(diào)用COM組件。無論是采用哪一種開發(fā)平臺,也無論采用何種程序設(shè)計風格,進行組件開發(fā)都需要遵循相關(guān)的標準,只有按照統(tǒng)一的標準進行開發(fā),軟件中所涉及的各種類型的組件之間才能實現(xiàn)互相訪問和協(xié)同工作。

        2 Word對象模型解析

        在項目中添加好相應的COM組件后,就可以使用組件中提供的接口來實現(xiàn)Word編程[3]。Word編程中所有相關(guān)的類和對象都在Microsoft.Office.Interop.Word命名空間中進行定義。下面介紹Word對象模型中的5大對象。

        1)Application對象,表示W(wǎng)ord應用程序,是所有其他對象的父級。Word應用程序中所有打開的Word文檔都在該對象的Documents集合中;訪問ActiveDocument屬性可以獲取焦點所在的活動Document對象。

        2)Document對象,表示一個Word文檔文件,可以使用Application.Documents的Add方法(或Open方法)來創(chuàng)建(或打開)一個新的Document對象,當新建或打開一個Word文檔時,就是創(chuàng)建了一個Document對象,該對象自動添加到Documents集合中,使用該對象的Save方法(或是SaveAs方法)可以保存(或是另存為)文檔。

        3)Selection對象:代表Word文檔中的選定區(qū)域,可以是一塊連續(xù)的選區(qū),也可以是非連續(xù)的選區(qū),如何沒有選擇任何區(qū)域,則表示光標所在的位置。任何時候都只存在一個Selection對象。

        4)Bookmark對象:代表文檔中的書簽,是一塊連續(xù)的區(qū)域,既可用于標識一個位置,也可以當成一個文本容器。文檔中可以定義多個書簽。

        5)Range對象,表示W(wǎng)ord文檔中一塊連續(xù)的區(qū)域,它由一個起始位置和一個結(jié)束位置定義。同一個Word文檔中可以有多個Range對象。

        3 生成Word試卷

        3.1 添加Word 2010的COM組件

        不同的Word版本,其COM組件的名稱也稍有不同,對于特定的Word版本,需要引入相應的COM組件進行開發(fā)。例如,Word2003的COM組件名為Microsoft Word1 1. 0 Object Library,而Word2010的COM組件名為Microsoft Word 14.0 Object Library。

        添加方式為:在工程資源管理器中“添加引用”>“com”選項卡>在下拉列表中選“Microsoft word 14.0 Object Library”。添加好COM組件之后,會在工程里多出兩個新的引用:Microsoft.Office.Core和Microsoft.Office.Interop.Word。

        3.2 調(diào)用Word試卷模板生成新文檔

        每個學校的試卷通常都有默認的格式,有豎排的,也有橫排的,也有A3紙張的也有A4幅面的,頁面設(shè)置也可能各不相同。通過調(diào)用Word試卷模板來生成Word試卷,可以解決復雜的頁面格式控制問題,注意不同的Word版本,其模板文件的擴展名也不同。試卷模板中包含固定的信息,主要是試卷屬性名;要動態(tài)生成的內(nèi)容先預置好文本框或標簽。

        通過以下代碼調(diào)用Word試卷模板來創(chuàng)建一個新文檔:

        Object template=TestPaperTemplateName;

        //TestPaperTemplateName為模板文件的路徑和文件名

        Word.Application word = new Word.Application();

        //創(chuàng)建word對象

        Word.Documentmydoc = word.Documents.Open(ref template);

        //根據(jù)模板文件創(chuàng)建一個空文檔,mydoc表示創(chuàng)建的Document對象

        3.3 特定位置信息的處理

        試卷頭部中有關(guān)于一份試卷的基本信息,如課程名稱、學年學期、適用班級等等信息,信息量不少,且內(nèi)容顯示的格式都不太相同,待填寫的位置還有下劃線,增加了處理難度。如果采用逐行輸出,格式處理起來就很麻煩,下劃線的長度也不是很好控制,代碼行也相應較多;如果采用表格形式控制輸出,就會有很多的單元格要進行合并和拆分,且看起來不太美觀;比較理想的處理方式是在試卷模板中,將待待填入信息的地方都添加文本框,設(shè)置好文本框的格式,然后在源代碼文件中動態(tài)地逐個訪問文本框,并填入相關(guān)內(nèi)容??梢允褂肦ange對象來處理這類特定位置信息。

        Word對象中的WdStoryType屬于枚舉類型,同一類之間的對象是鏈表的形式連接在一起的。其中wdTextFramStory代表文本框架部分,通過判斷Range對象的StoryType屬性是否為來wdTextFramStory定位到文本框中,然后逐個遍歷。

        使用如下代碼可以實現(xiàn)對文本框的控制:

        Word.StoryRangessr = mydoc.StoryRanges;

        foreach (Word.Range r in sr)

        { Word.Range r1 = r;

        if (Word.WdStoryType.wdTextFrameStory == r.StoryType)

        { intContentValue = 1;

        do {

        r1.Text = ContentValue.ToString();

        ContentValue++;

        r1 = r1.NextStoryRange;

        } while (r1 != null);}}

        3.4 表格的處理

        在Word文檔中,表格是一種重要的信息呈現(xiàn)形式,它既可以承載內(nèi)容,又可以起到格式控制的作用,被得到廣泛的使用。

        使用如下代碼可以實現(xiàn)對表格的控制:

        Word.Tablemytable; //聲明Word表格

        mytable = mydoc.Tables.Add(mysel.Range, rows,cols, ref myobj, ref myobj);//生成rows行cols列的表格

        mytable.Columns[i].Width =35;//設(shè)置第i列的寬度

        mytable.Rows[j].Height=40;//設(shè)置第j 行的高度

        mytable.Cell(j, i).Range.InsertAfter(“abcd”);//在指定單元格當前光標后插入內(nèi)容

        mytable.Rows.Add(1);//往表格中添加一行

        3.5 圖片的處理

        在COM組件編程中將Word文檔中的圖片分為兩種,即Shape對象和InLineShape對象,Shape對象可浮于文字之上,且可放置在文檔中的任意位置;而InLineShape對象為嵌入式圖形對象,在排版上以文字的的方式進行排版。

        在試卷中經(jīng)常會出現(xiàn)圖片,有些圖片是題干內(nèi)容,有些圖片是選擇題中的選項,這些圖片都需要同文字流一起排版,因此將其作為InLineShape對象進行處理。InLineShapes是InLineShape對象的集合??梢允褂梦臋n對象Document中的InLineShapes集合的AddPicture()方法實現(xiàn)向Word文檔中插入圖片。此外,設(shè)置InLineShape對象的Width和Height屬性可以調(diào)整圖片的寬和高。

        使用下面的代碼插入圖片并設(shè)置相關(guān)的屬性:

        string FileName=fileName; //圖片名稱及路徑

        Word.Applicationapp=new Word.Application();

        object range=app.Selection.Range;// 圖片插入位置

        Word.InLineShape shape=app.ActiveDocument.InLineShapes.AddPicture(FileName, ref linkToFile, refsaveWithDocument, ref range);

        shape.Width=150f;// 設(shè)置圖片寬度

        shape.Height=300f;//設(shè)置圖片高度

        3.6 生成Word試卷的算法流程圖

        試卷內(nèi)容顯示可以以段落的形式,也可以是表格的形式,考慮到表格可以更方便地將題號與題目內(nèi)容分開,本文最后還是選用了表格的形式。根據(jù)試題的數(shù)量N先初始化一個N行2列的表格,每道題目占一行,第1列用來寫題號,第2列用來寫題目內(nèi)容。表格行數(shù)可根據(jù)需要進行添加,如需要添加題型標題行、需要添加作答區(qū)時應增加表格行,作答區(qū)的空白范圍通過設(shè)置當前行的行高來進行控制。

        將一套試卷的所有試題從數(shù)據(jù)庫中讀取出來,保存至ADO的DataTable對象中,且按照題型排好序,然后采用圖1中所示的算法,將試題按照用戶所要求的格式寫入到Word文檔中,即生成Word格式的試卷。

        參考文獻:

        [1] 趙春海.COM組件的設(shè)計與使用[J].邵陽學院學報:自然科學版,2009(3).

        [2] 王二暖.基于C#的Word 2010文檔自動生成系統(tǒng)[J].電腦開發(fā)與應用,2011,24(5):48-50.

        [3] 陳輝.Word對象模型在智能組卷中的應用[J].現(xiàn)代電子技術(shù),2012(4).

        [4] 趙春海.COM組件的設(shè)計與使用[J].邵陽學院學報:自然科學版,2009(3).

        [5] 李志云.C#對SQL Server中的數(shù)據(jù)導入導出[J].電腦編程技巧與維護,2009(17).

        黄片小视频免费观看完整版| 久久精品国产亚洲不av麻豆| 粉嫩国产白浆在线播放| 亚洲24小时免费视频| 一本大道熟女人妻中文字幕在线| 四川少妇大战4黑人| 国产va精品免费观看| 亚洲中文高清乱码av中文| 国产国产精品人在线视| 欧美第一黄网免费网站| 99国产精品无码专区| av在线一区二区精品| 亚洲人成影院在线无码按摩店| 国产 国语对白 露脸| 国产成人精品蜜芽视频| 男奸女永久免费视频网站| 国产成人av一区二区三区| 高清国产日韩欧美| 日本精品熟妇一区二区三区 | 青青草小视频在线播放| 性高湖久久久久久久久| 美女裸体无遮挡免费视频的网站| 国内激情一区二区视频| 国产女人好紧好爽| 成人精品综合免费视频| 91热爆在线精品| 午夜精品久久99蜜桃| 狠狠躁天天躁中文字幕 | 国产极品喷水视频| 久久一区二区三区少妇人妻| 少妇被粗大的猛烈进出免费视频| 78成人精品电影在线播放| 日本大片在线一区二区三区| 久久久久人妻精品一区二区三区| 女性女同性aⅴ免费观女性恋 | 国产精品国产三级国产aⅴ下载 | 亚洲爆乳无码专区| 永久免费在线观看蜜桃视频| 国产精品视频亚洲二区| 性xxxx视频播放免费| 熟女白浆精品一区二区 |