一、前言
内部培训会有Word版本题库,考核时如果使用Word、Excel、PDF等文档进行关键字查询题目体验不佳。so,撸个软件吧!
二、Word题库转Excel
1、Word题库格式要求
题目每7行循环,要求如下:
行数 | 内容 | 分隔符 |
---|---|---|
第一行 | 题目 | |
第二行 | 选项A | "."(英文符号点) |
第三行 | 选项B | "."(英文符号点) |
第四行 | 选项C | "."(英文符号点) |
第五行 | 选项D | "."(英文符号点) |
第六行 | 答案 | ":"(英文符号冒号) |
第七行 | 换行符分割 |
2、Word题库内容展示
3、Python转换代码
python
# -*- coding: cp936 -*-
import docx
import openpyxl
doc_path = input("输入Word文件路径:")
wb_path = input("输入Excel文件路径:")
try:
# 读取Word文档
doc = docx.Document(doc_path)
# 创建一个Excel工作簿
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "题目及答案"
# 写入表头
ws["A1"] = "题目"
ws["B1"] = "答案"
row_num = 2
for i in range(0, len(doc.paragraphs), 7):
print(f"正在读取:{doc.paragraphs[i].text}")
question = doc.paragraphs[i].text
option_A = doc.paragraphs[i+1].text.split(".")[1].strip()
option_B = doc.paragraphs[i+2].text.split(".")[1].strip()
option_C = doc.paragraphs[i+3].text.split(".")[1].strip()
option_D = doc.paragraphs[i+4].text.split(".")[1].strip()
answer_index = doc.paragraphs[i+5].text.split(":")[1].strip()
options_dict = {
"A": option_A,
"B": option_B,
"C": option_C,
"D": option_D
}
# 获取答案对应的值,若找不到则使用"Unknown"
answer = options_dict.get(answer_index, "Unknown")
# 写入Excel
ws[f"A{row_num}"] = question
ws[f"B{row_num}"] = answer
row_num += 1
# 保存Excel文件
wb.save(wb_path)
print("转换完成:题目和答案已成功写入Excel文件。")
except Exception as e:
print(f"发生错误:{e}")
input("按任意键退出...")
4、Python打包程序下载
5、错误原因说明及解决方法
软件如若报错,打开Word题库,定位到出错的位置,检查修改至满足上诉格式要求。
情况一:题目存在多余换行符,如下。
情况二:答案缺失换行符,如下。
情况三:缺失部分题目、答案选项、答案结果,如下。
三、关键字快速查询题库
1、Excel题库格式要求
列数 | 内容 |
---|---|
A列 | 题目 |
B列 | 正确答案 |
2、Excel题库内容展示
3、软件下载
4、软件使用
①启动软件,并打开题库
②查询方式
查询方式 | 说明 |
---|---|
输入关键字,点击按钮查询 | 前台查询 |
输入关键字,按键"ALT+S"查询 | 前台查询 |
复制关键字,按键"CTRL+X"查询 | 全局查询 |
③查询结果仅为1题时,效果展示
④查询结果为多题时,效果展示(在软件左侧上部分点击选择或输入更多关键字查询)
⑤查询结果为空时,效果展示
⑥查询题目重复,效果展示
四、补充说明
1、"Word题库转Excel"开发环境:Python 3.9;
2、"查询Excell"开发环境:.NET8;
3、软件仅适配了单选题;
4、软件支持题目重复;
5、若考核网页(软件)不支持题目复制,尝试使用浏览器插件解除复制或使用ocr软件辅助。