几年前csdn上遇到一个朋友咨询“基于Word文档的试卷单题拆分”的问题,正好当时做完了这样一个工具,效果不错。当时分享了一些设计思路,留下了联系方式,几年来不少朋友又在询问这一问题,或多或少又做了些分享,现在想干脆写个东西,让需要的朋友可以试着自己做或者下载我的工具。
一、设计思路
Word文档的试卷,看起来没有什么明显的标记,其实结构还是很清晰的,从文字语义来讲,分为标题,说明字,大题标题,小题标题,试题开头,题干,答案,解析等等,其实我们可以剖析人在阅读试卷时的切分思路,先读取每个段落的文字,用一组正则表达式来分析出每个段落的语义,然后写下整个试卷的段落语义串,然后根据人工阅读时的规则来进行片段划分,当然也要用到正则表达式。最后根据切分记录,从Word中提取WordML形成单个试题的Word文档。
二、主要技术
整个工具采用Vs2010,.Net 4.0平台编写,首先是需要熟悉Word的互操作编程,在安装Office时,自定义安装确保安装Office共享功能的.Net编程组件和Word的.Net编程组件,另外还需要熟悉正则表达式,用于分析段落语义,以及实施拆分决策。
三、已经实现的效果
1、能够顺利拆分常见各科试卷,不需要进行专门的格式化修改
2、能自动对应试题题型,题干,答案,解析等常见试题要素
3、适应参考答案的多种常见编排方式,如直接跟在试题后面或者罗列在试卷最后。
4、能直接拆分后保存为WordML格式(Word 2003)的