一种基于C#中将Word试题导入数据库的实现方法

2017-04-18 16:05周虎
电脑知识与技术 2016年35期
关键词:试题库

周虎

摘要:随着在线考试系统的不断发展,试题库建设问题也逐渐显露出来,如何让用户方便,快捷的录入试题,并能够保留试卷原有的格式,尤其是包含图片和公式的试卷,一直是开发者着力解决的主要问题。本文通过利用Word文档来组建试卷,并在Word中设置起始标志,对Word文档标签的提取和过滤,本文实现了基于C#中将Word文档中的包含图片,表格,公式的试题批量导入数据库的方法,大大提高了题库建设的效率。

关键词:在线考试系统;试题导入;Word文档;正则表达式;试题库

中图分类号: TP311.11 文献标识码:A 文章编号:1009-3044(2016)35-0008-03

Implementation Method of Word Test Question Import Database in C#

HU Zhou

(Jiangsu Lianhe Technical Institute Xuzhou branch of Finance, Xuzhou 221008,China)

Abstract: With the continuous development of online examination system, construction of database also gradually revealed, how to make users convenient, quick input questions, and can keep the original paper format, especially the formula contains pictures and papers, has been a major problem for developers to solve. In this paper, through the use of the Word document to form the papers, and set the initial signs in Word, extraction and filtering of Word document, the table contains pictures, C#, Word document based on the method of test batch import database formula, greatly improves the efficiency of database construction.

Key words: Online examination system; test paper import; Word document; regular expression; Examination question database;

1 引言

隨着互联网的迅速发展,基于网络的在线考试系统逐步发展起来,大大提高了考试的效率[1],但是对于题库的建设一直是在线考试系统中的关键问题[2]。题库建设的起步阶段,大部分是靠在线手工逐题录入的方式,采用这种方式录入试题速度较慢,操作起来比较繁琐,并且大部分只能提供纯文字版试题。伴随着信息技术的发展,使用Excel导入题库的方式逐步出现,采用这种方式,用户可以提前把试题在Excel中整理好,最后通过文件上传的方式将Excel中的试题导入到数据库中[3],采用这种方式较在线录入试题方式有了很大的进步,但是对于包含图片、公式、表格的试题,Excel试题导入的方式就无能为力了。针对Word文档本身可以包含图片、公式、表格等特殊对象的特点,本文通过在Word中设置起始标志,然后提取Word文档中的有效标签和图片对象,实现了将Word文档中的包含图片、表格、公式等特殊对象的题目导入数据库的方法。

2 Word试题导入数据库方法简介

Word已经成为大部分用户经常使用的文档编辑工具[4],在Word中编辑试题也是目前所有试题编辑器中的最佳选择,因为在Word中可以添加图片、表格、公式等多种对象,同时Word操作起来简单并且方便快捷。

针对Word文档在进行复制操作时特点,首先需要对导入数据库的Word文档执行全选和复制操作,它会将文档中的公式转换为图片对象,并且将所有的图片对象复制到当前用户下面的“AppData/Local/Temp/”目录下面,根据Word文档标签中图片的名称和路径,将图片从临时文件夹下复制到当前指定目录下面,然后将Word文档标签中原图片的绝对路径地址替换成网站中图片的相对路径中,并将Word标签中多余无关的标签使用调用Web在线编辑器中处理Word的文档标签的JS函数进行过滤提取,然后根据指定的起始标志,进行正则匹配,并分离题目的类型、题干、答案、章节和难度系数等属性,分离成功后将题目封装到题目对象集合中去,最后统一保存到数据库,并上传分离图片即可完成整个Word文档导入数据库的功能,最终在显示题目时将图片和文字以HTML方式显示。具体步骤如图1所示。

程序3 实现Word文档中图片复制操作并替换图片路径

3.3 分离题目到题目对象集合

当Word文档中图片处理完成后,根据Word标签中指定的起始标识再次使用正则表达式进行匹配,如程序4所示。

public static MatchCollection GetValue(string str, string s, string e)

{

Regex rg = new Regex("(?<=(" + s + "))[.\\s\\S]*?(?=(" + e + "))", RegexOptions.Multiline | RegexOptions.Singleline);//根据开始和结束字符进行匹配

return rg.Matches(str);

}

程序4 根据指定起始字符串进行正则匹配

根据指定的起始标志【开始】和【结束】,到Word文档标签中进行匹配遍历,同时将题目信息分离到题目对象集合中去,最后直接将集合中的题目对象添加到数据库中去,具体实现如程序5所示。

MatchCollection ls=GetValue(htm,"【开始】","【结束】");//获取指定标识集合

int x = 0;

List lst = new List();//存放题目对象集合

foreach(Match m in ls )

{

string str1 = m.Value;

if (!TagsChecker.check(str1))

str1= TagsChecker.fix(str1);//修补HTML标签,

str1 = str1.Replace("", "");///去掉空行

lst.Add(getTopic(str1));//添加題目对象

x++;

3.4上传分离图片到服务器

当Word试题已经保存到数据库后,需要将从Word文档中分离出来的图片上传到服务器端网站的相对路径中去。在上传图片时采用了WebClient.UploadData()方法,具体实现如程序6所示。

WebClient myWebClient = new WebClient();

myWebClient.Headers.Add("Content-Type","application/x-www-form-urlencoded");

myWebClient.QueryString["directory"] = directory;//文件夹

myWebClient.QueryString["extension"] = extension;//扩展名

byte[] responseArray = myWebClient.UploadData(url, "POST", data);//提交数据

程序6 Word文档图片上传

4 总结

题库建设是建立现代考试系统的首要问题,本文针对题库建设中使用Word文档方式将包含图片、表格和公式等复杂对象的试题导入到数据库中,在考试过程中尽可能地保留了原有的Word文档格式,通过对Word文档的转换,数据的提取和保存操作,实现了将Word试题批量导入数据库的方法,一方面方便了用户的操作,同时扩展了试卷题目的多样化。

参考文献:

[1] 黄芳,王晓霞.谈高职院校课程考试中的题库建设[J]. 山东省农业管理干部学院学报,2012(29):3.

[2] 李光明,关丹丹.关于题库建设若干问题的思考[J].中国考试,2014(9):5.

[3]董园. 在线考试系统中的题库建设相关技术的研究[J].电子世界,2015(6):112-115.

[4]冯立,张景韶,周利平.基于B/S模式下的网络题库台研究与实践[J].重庆师范大学学报(自然科学版),2012,29(4):77-81.

[5]吴金彪. C#正则表达式匹配HTML中的图片路径[EB/OL].[2012-02-09].

[6]李永华.网络化考试的题库建设及应用研究[J].高教论坛,2013(10).

[7]邓永海.ASP_NET中将Word试卷逐题导入数据库的实现方法[J].计算机与现代化,2010(12).

[8] 蔡晓云.基于知识的在线考试系统题库设计[J].计算机与现代化,2011(8):197.

猜你喜欢
试题库
病理学与病理生理学试题库建设探讨
石油炼制技术课程试题库建设的探讨
职业院校旅游专业试题库建设的实践与反思
——以导游资格笔试科目为例
C语言考试题库在教学中的重要性研究
高校试题库建设新探讨
高校试题库建设方案探索
基于网络的试题库系统建设研究
基于Quiz Creator的“机械图样的绘制与识读”随机组卷试题库的制作与研究
基于校园网的电磁学试题库建设
教考分离模式下课程试题库的建设研究——以高职院校数学课程为例