本帖最后由 mingzial 于 2024-7-28 15:18 编辑
一、Word题库转Excel
1、Word题库格式要求
内容 |
格式要求 |
事例 |
题目 |
数字+中文顿号 |
1、我是题目 |
选项 |
英文字母+英文点 |
A.我是选项 |
答案 |
中文汉字+英文冒号 |
答案:我是答案 |
2、Word题库支持题型
支持题型 |
答案要求 |
单项选择题 |
单个英文字母 |
多项选择题 |
多个不重复英文字母 |
判断题 |
'√', '×', '对', '错' |
填空题、问答题等 |
单一非空字符串(如多个填空,需把答案组合为一条记录) |
3、Word题库内容展示
4、Python转换代码
# -*- coding: cp936 -*-
import docx
import openpyxl
import re
def 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() == "":#空行
continue
elif 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.active
ws.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、运行报错及解决方法
软件如若报错,打开Word题库,定位到出错的位置,检查修改至满足上诉格式要求。
6、已知问题
因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、软件使用
①启动软件,并打开题库
②查询方式
查询方式 |
说明 |
输入关键字,点击按钮查询 |
前台查询 |
输入关键字,按键“ALT+S”查询 |
前台查询 |
复制关键字,按键“CTRL+X”查询 |
全局查询 |
③查询结果仅为1题时,效果展示
④查询结果为多题时,效果展示(在软件左侧上部分点击选择或输入更多关键字查询)
⑤查询结果为空时,效果展示
⑥查询题目重复,效果展示
三、软件说明及下载链接
1、“Word题库转Excel”开发环境:Python 3.9;
2、“查询Excell”开发环境:.NET8;
3、软件支持题目重复;
4、若考核网页(软件)不支持题目复制,尝试使用浏览器插件解除复制或使用ocr软件辅助;
5、下载链接:蓝奏云,密码:59f4。
四、土豪通道
内容为上文蓝奏云链接,感谢支持。:
下载链接.txt
(50 Bytes, 下载次数: 21)
|