一、问题描述
一些考证培训类的APP经常需要excel表格类型的题库,其结构如下图所示。从左往右分别是“题干”,“选项A”,“选项B”,“选项C”,“选项D”,“正确答案”,“解析”。
往往,获得的试题资源是pdf、图片或者word形式的。对于pdf、图片,都可以采用OCR(光学字符识别)的方法转换成word文档,pdf有时候可以直接转换,而不需要OCR。所以问题可以归结为Word试题如何快速转换制作成excel题库。
Word试题文档的一个例子如下图所示。
二、方法
总的方法是,在word文档中,把试题转换为符合excel题库结构的表格,然后直接粘贴到excel中。
试题是单选题,首先观察上述word试题的结构:题目一个自然段,由题目序号+题目内容构成;然后是ABCD四选项,每个选项占一个自然段,由ABCD+选项内容组成;答案占一个自然段,由标签“【正确答案】”+答案构成;解析占一个自然段,由标签“【问题解析】”+解析内容构成。
然后,需要把同属于一个题目的各要素用制表符连接成一个段落,为把内容转换为表格做准备。制表符添加与替换如下图所示。
查找替换
分步实现上图所示的制表符添加替换。注意在执行操作前,请备分文档。
1. 题目序号后面添加制表符
题目序号由数字与一个全角点号组成。查找与替换设置如下,其中{1,3}表示1-3位数的数字,可以根据题目多少进行调整。之所以保留题目序号,是为了方便后面的核对检查。
2. 把ABCD及其前面的段落标志替换为制表符
选项的组成是ABCD字母+小圆点+半角空格+内容。查找与替换设置如下,启用通配符的情况下,在查找框中表达段落标志只能用^13,而不能使用^p。
3. 把【正确答案】及其前面的段落标志替换为制表符
查找与替换设置如下。
4. 把【问题解析】及其前面的段落标志替换为制表符
查找与替换设置如下。
以上3个步骤在替换之前都需要把光标置于文首,勾选“使用通配符”,然后再全部替换。最终替换完成的效果如下图所示。
转换为表格
其实到了上面这一步,已经可以直接粘贴到excel中了。但是为了核对转换错误,所以需要在word中把试题转换为表格。操作步骤:全选试题--“插入”—“表格”—“文本转换成表格”。弹出对话框,设置如下。
先确定文字分隔位置,这里选制表符。所选内容中含有多个制表符时,分隔位置一般默认为制表符,不需要选择。“自动调整”操作,可以选根据内容调整表格。选定分隔位置后,表格列数与行数会自动列出,列数还可设置,但一般不动,它代表一个题目划分为几列;行数灰色,不可设置,代表了段落标志的数量,即题目的数量。如果这两个数字与题目内容一致,说明转换成功,一般不会有错误。
下图中所显示的列数为8,题目序号为1列,题目内容为1列,4个选项为4列,答案为1列,解析为1列,共8列,两者相符;行数显示21,例中题目共为21题,两者相符。说明转换成功。
转换的表格如下图所示。
检查核对
从头到尾对表格进行浏览,检查转换错误,比如有没有空白的单元格,两个选项是不是串在一起了,有没有缺少某题……一旦发现问题,可以通过题目序号快速找到原题进行比对。
检查完成后,把序号列删除,把表格粘贴到excel中。
一次转换多个文档
如果有多个类似的word文档试题,每个文档转换一次,是比较麻烦的。
可以新建一个空白文档,作为主控文档,把试题文档插入到该主控文档中作为子文档。在主控文档中可以一次进行多个子文档的转换操作,转换结果可以保存回各个子文档中,从而进一步提高效率。
在空白文档(即主控文档)中插入子文档的操作如下图所示。
主控文档插入子文档--word
这是在不会编程的情况下,也能大大提高效率的半自动的转换方法。如果试题的量不太大(上万题,几十个文档以内),这种方法还是适合的。
当然如果会一些诸如VBA一类的编程知识,把整个过程编程写下来,然后一键完成,效率会更高。