← 返回笔记

题库导入与解析:从 DOCX 到五类题型

2026.07.06 · 导入解析 · Quiz App

题库导入是 Quiz App 最容易变复杂的部分。用户手里的文件格式并不统一:有纯文本,有 CSV,有 JSON,也有从 Word 里整理出来的 DOCX。项目的做法是先按扩展名分流,再把不同来源统一转换成内部的 Question 数据结构。

导入流程

文件选择
  -> 按扩展名选择解析器
  -> 解析为 Question[]
  -> 自动挖空填空题
  -> 计算内容哈希去重
  -> 写入 Dexie 或上传云端

文档里明确支持五种格式:.txt.json.csv.docx.md。其中 DOCX 的处理最重:先用 mammoth 提取文本,再可选走 AI 格式整理,最后进入考试卷解析器。

DOCX 图片提取

一个比较实用的细节是 DOCX 配图。很多题库并不是纯文字,题干里可能嵌入图表、流程图或截图。项目在导入 DOCX 时会提取内嵌图片,并把图片作为题目字段保存。这样刷题页、背题页和题目详情都能展示图片,用户点击后还能放大查看。

五类题型

多选题没有混在单选里,是一个很重要的建模决定。因为多选的判题、展示、答案顺序和部分得分策略都和单选不同,独立类型能减少后续判断里的分支。

AI 格式整理的位置

AI 整理不是强依赖,而是 DOCX 导入时的可选增强。它的作用是把格式混乱的 Word 文档归一成更容易解析的文本。开发环境可以本地直连;部署环境通过 Cloudflare Pages Function 携带环境变量调用,避免把 key 放到浏览器。

这条链路的价值是把“不可靠的输入”尽量变成“可预测的文本”,但最终仍然要依赖解析器和测试用例兜底。