一、前言
内部培训会有Word版本题库,考核时如果使用Word、Excel、PDF等文档进行关键字查询题目体验不佳。so,撸个软件吧!
20240728更新:支持更多题库类型。
二、Word题库转Excel
1、Word题库格式要求
| 内容 | 格式要求 | 事例 |
|---|---|---|
| 题目 | 数字+中文顿号 | 1、我是题目 |
| 选项 | 英文字母+英文点 | A.我是选项 |
| 答案 | 中文汉字+英文冒号 | 答案:我是答案 |
2、Word题库支持题型
| 支持题型 | 答案要求 |
|---|---|
| 单项选择题 | 单个英文字母 |
| 多项选择题 | 多个不重复英文字母 |
| 判断题 | ‘√’, ‘×’, ‘对’, ‘错’ |
| 填空题、问答题等 | 单一非空字符串(如多个填空,需把答案组合为一条记录) |
3、Word题库内容展示

4、Python转换代码
# -*- coding: cp936 -*-import docx
import openpyxl
import redef check_answer_type(answer_index):if answer_index.encode().isalpha() and len(answer_index) == 1:#单选answers.append(options_dict.get(answer_index, "Unknown"))questions_type.append("单选题")elif answer_index.encode().isalpha():#多选answers.append('\r\n'.join([options_dict.get(char, "Unknown") for char in answer_index]))questions_type.append("多选题")elif answer_index in ['√', '×', '对', '错']:#判断questions_type.append("判断题")answers.append(answer_index)else:#其他,填空/问答等questions_type.append("其他题")answers.append(answer_index)doc_path = input("输入Word文件路径:")
wb_path = input("输入Excel文件路径:")questions = []
questions_type = []
options_dict = {}
options_count = []
answers = []
answers_count = []try:# 读取Word文档doc = docx.Document(doc_path)for para in doc.paragraphs:if para.text.strip() == "":#空行continueelif re.match(r'^\d+、', para.text):#题目,数字+、print(f"正在读取:{para.text}")questions.append(para.text.strip())elif re.match(r'^[A-Z]\.', para.text):#选项,字母+.options_dict[para.text.split(".")[0].strip()] = para.text.split(".")[1].strip()elif re.match(r'^答案:', para.text):#答案,答案+:answer_index = para.text.split(":")[1].strip()check_answer_type(answer_index)options_count.append(len(options_dict))answers_count.append(len(answer_index))options_dict.clear()else:raise ValueError(f"格式错误:{para.text}")# 创建一个Excel工作簿wb = openpyxl.Workbook()ws = wb.activews.title = "题目及答案"ws['A1'] = '题目'ws['B1'] = '答案'ws['C1'] = '题目类型'ws['D1'] = '选择项个数'ws['E1'] = '答案个数或长度'# 将题目和答案写入Excel文件for i in range(len(questions)):ws[f'A{i+2}'] = questions[i]ws[f'B{i+2}'] = answers[i]ws[f'C{i+2}'] = questions_type[i]ws[f'D{i+2}'] = options_count[i]ws[f'E{i+2}'] = answers_count[i]# 保存Excel文件wb.save(wb_path)print("转换完成:题目和答案已成功写入Excel文件。")except Exception as e:print(f"发生错误:{e}")input("按任意键退出...")
5、Python打包程序下载
🔗下载链接。
6、运行报错及解决方法
软件如若报错,打开Word题库,定位到出错的位置,检查修改至满足上诉格式要求。

7、已知问题
因Word题库格式存在的不确定性,难免有不可预见问题。如若软件提示转换完成,请检查核对生成Excel题库文件的正确性。
三、关键字快速查询题库
1、Excel题库格式说明
Excel题库可用上述软件转换,也可自行制作(自行制作,仅需制作A列、B列即可)。
| 列数 | 内容 | 软件读取列 |
|---|---|---|
| A列 | 题目 | 读取 |
| B列 | 正确答案 | 读取 |
| C列 | 题目类型 | 不读取 |
| D列 | 选择项个数 | 不读取 |
| E列 | 答案个数或长度 | 不读取 |
2、转换Excel题库检查说明
使用转换方式获取Excel题库,请自行检查核对生成Excel题库文件的正确性,包括并不限于仅检查以下内容。
| 题型 | 检查内容 |
|---|---|
| 单选题 | 筛选检查选项个数是否存在遗漏,答案个数是否为1 |
| 多选题 | 筛选检查选项个数是否存在遗漏 |
| 判断题 | 筛选检查选项个数是否为0,答案个数是否为1,答案格式是否正确 |
| 其他题 | 筛选检查选项个数是否为0,答案长度是否大于0 |
| 检查有效行数与Word题库数量是否一致 | |
| 检查题目、答案是否有误 |
3、Excel题库内容展示

4、软件下载
🔗下载链接。
5、软件使用
①启动软件,并打开题库

②查询方式
| 查询方式 | 说明 |
|---|---|
| 输入关键字,点击按钮查询 | 前台查询 |
| 输入关键字,按键“ALT+S”查询 | 前台查询 |
| 复制关键字,按键“CTRL+X”查询 | 全局查询 |
③查询结果仅为1题时,效果展示

④查询结果为多题时,效果展示(在软件左侧上部分点击选择或输入更多关键字查询)

⑤查询结果为空时,效果展示

⑥查询题目重复,效果展示

四、补充说明
1、“Word题库转Excel”开发环境:Python 3.9;
2、“查询Excell”开发环境:.NET8;
3、软件支持题目重复;
4、若考核网页(软件)不支持题目复制,尝试使用浏览器插件解除复制或使用ocr软件辅助。