导入与迁移
教务系统导入、表格导入、ICS 导入、AI 识图、二维码传输的完整操作步骤。
进入方式:首页右上角菜单 → 导入课程。页面顶部有一个随机课程颜色开关, 打开后会按课程名与教师自动分配预设色,不用手动挑色。
四种方式按推荐顺序排列,学校有没有被适配都能用。
教务系统导入(推荐)
适配脚本来自 qingyu_warehouse,已覆盖一部分学校。
在导入页点**「教务系统导入」**,进入学校列表。
搜索或找到你的学校,点击进入。页面会显示「匹配适配器:XXX」。 一所学校可能有多个适配器(不同教务系统版本)。搜不到时试试学校全称、 适配器名称(如 WakeUp)或学校代码;列表里会单独列出「最近使用」。
选择要用的适配器,应用会在内置浏览器中打开教务系统登录页。
登录。如果之前记住过账号,会询问是否自动填充;登录成功后也可以选择 记住密码(下次自动填充,凭据只存在本机)。
登录后点**「执行导入脚本」**。脚本会注入并抓取课表,页面底部有实时状态提示。
确认解析出的课程数量,然后确认开学日期与「课表第 1 周对应校历第几周」。 如果学校前几周没课,这里通常要往后调——选好之后页面会直接告诉你 「导入后会把所有课程周次整体顺延 N 周」,下面还会提示课表第 1 周落在校历第几周, 照着核对一遍。
选择导入为当前课表,或保存为一张新课表。
教务系统的账号密码只在你本机与学校服务器之间传输,不会上传到应用作者。
适配器详情页能看什么
在适配器条目上点**「查看详情」**,能看到这些信息,排查问题时很有用:
| 字段 | 说明 |
|---|---|
| 学校 / 类别 / 维护者 | 适配器来源与维护人 |
| 说明 | 维护者写的 markdown 说明,通常含适用校区与已知限制 |
adapter_id | 适配器标识,反馈问题时带上能省一轮沟通 |
| 脚本路径 | 脚本在适配仓里的位置 |
| 登录入口 | 实际使用的教务网址。为空表示这个适配器没配默认地址 |
| 仓库 | 适配器所在仓库地址 |
| 脚本状态 | 显示「脚本已成功读取,长度 N 字符」说明正常;「脚本为空」说明没拉到 |
详情页底部还有四个操作:
- 系统浏览器打开:在系统浏览器里打开登录地址(应用内网页异常时用它对照)
- 复制登录地址 / 复制脚本地址:反馈时直接贴给开发者
- 自定义登录地址 / 修改自定义地址:学校换过教务网址时,自己填一个覆盖默认值 (保存后下次直接用,也可以随时「清除自定义地址」恢复默认)
教务网页显示不对时,试试右上角的桌面端 / 移动端页面切换按钮。 有些学校的课表页只在桌面版布局下能被脚本识别。
快捷导入(录制一次,之后一键)
第一次按上面 7 步走完后,会问你要不要把这次的操作路径保存成快捷导入。 保存后下次就不用再手动点「执行导入脚本」了。
在导入页点右上角的**「⚡ 快捷导入」**,选一条已保存的记录 (显示「适配器名 · N 步」)。只有一条时会直接开跑,不弹选择框。
应用会自动重放录制好的步骤、自动执行脚本并把结果导入。
期间页面上有**「取消导入」**按钮,随时可以中断。
也可以只录制不导入:在适配器条目上点**「录制导入」**, 按正常流程操作一遍教务网站,点停止后问你是否保存。
快捷导入不保存你的账号密码,录的是「点了哪些按钮、访问了哪些页面」这些步骤。 教务网站改版后录制的步骤会失效,重新录一次即可。
学校列表里没有我的学校
页面底部有「学校列表里没有你的学校?」入口。点进去提一个 Issue, 建议一起写上学校名称、教务系统网址、登录后课表页链接或截图,方便补适配。
如果你会网页调试、抓包或 JavaScript,也可以自己写适配器—— 见AI 协作适配教务。
导入出问题时的自助排查
- 页面右上角**「更多」里三个入口:缺少学校去反馈、自定义调试、「课表导入执行日志」** (导出后发给开发者能大幅加快定位)
- 学校列表读不出来时,通常会提示尝试了几个镜像线路,可先检查网络; 也可以到「关于软件 → 版本更新」里切换下载镜像后重试
- 教务系统改版会导致原有适配失效,在适配仓库提 issue 即可
- 提示**「时间模板节次不足」**时,选「自动补齐并导入」会帮你把课表时间模板 扩到需要的节数
- 提示**「未识别到可导入课程」**:脚本跑了但没解析出课, 先确认是不是选错了适配器,或教务系统的学期还没排课
表格导入
适合已经有 Excel / CSV 课表的情况。格式对不上时,导入页的模板能补齐。
在导入页点**「表格导入」**。
点**「下载轻屿课表模板」**获取模板。必填列为:课程名、星期、开始节、结束节, 以及周次(「上课周」或「开始周 + 结束周」)。其余列可选,可以只保留必要列。
填写完成后另存为 .csv,或保留 .xlsx。只读取第一个工作表。
点**「选择表格文件」**导入。如有识别不了的行,会先弹出「导入提醒」列出问题行, 点「继续导入」可跳过这些行、导入其余课程。
选择追加或替换现有课程。
模板有哪些列
官方模板的完整表头是这样的(第一行是格式标记,别删):
课程名,星期,开始节,结束节,上课周,简称,教师,教室,开始时间,结束时间,颜色,停课周,性质,简介,备注,时间模板| 列 | 必填 | 说明 |
|---|---|---|
| 课程名 | ✅ | 唯一标识。同一门课多行同名会自动归为一门 |
| 星期 | ✅ | 1–7 对应周一到周日 |
| 开始节 / 结束节 | ✅ | 单节课两列相同;连堂填起止。结束节不能小于开始节 |
| 上课周 | ✅ | 见下方「周次怎么写」 |
| 简称 | 建议 3 字以内,超级岛和小组件用它 | |
| 教师 / 教室 | 留空会显示「未知教师 / 未知地点」 | |
| 开始时间 / 结束时间 | 留空则按时间模板推算;填了就按填的来 | |
| 颜色 | #RRGGBB 十六进制,如 #2196F3 | |
| 停课周 | 这几周不上,填法同上课周 | |
| 性质 | 必修 或 选修 | |
| 简介 / 备注 | 简介是课程级共享,备注是这一条排课的 | |
| 时间模板 | 填模板 ID;留空或 default 表示跟随课表主时间表 |
周次怎么写
「上课周」和「停课周」都支持这些写法,多个段用中文逗号、英文逗号或顿号隔开:
| 写法 | 含义 |
|---|---|
1-16 | 第 1 周到第 16 周,全上 |
1-16单 | 只上单周 |
1-16双 | 只上双周 |
1-8、10-16 | 两段合起来,第 9 周不上 |
1-5、7-11单 | 可以一段全上、一段只上单周 |
3 | 只上第 3 周 |
周次最大到 30。超过学期周数的部分会被自动忽略并给出提醒—— 想让它们生效,先去「课表设置 → 选择学期周数」把周数调大。
也兼容 WakeUp 等同列格式(7 列,顺序为 课程名称 / 星期 / 开始节数 / 结束节数 / 老师 / 地点 / 周数)。如果提示「未识别表格格式」, 说明表头对不上,建议用官方模板重填。
ICS 日历导入
适用于从其他课表应用、学校导出的日历文件迁移。
先在别的课表应用里导出 .ics 文件。文件后缀必须是 .ics。
回到导入页点**「.ics 日历导入」→「选择 .ics 文件」**。
选择**「追加导入」或「替换现有」**。替换会同时清空当前课表上的独立日程 (自习、会议等),注意先备份。
导入前会让你确认开学日期,以及课表第 1 周对应校历第几周。 系统会根据文件里最早的上课日期给出默认值,可手动调整。
手里只有截图的话不要走这条路。返回上一页选「识图导入」。
AI 识图导入
学校未适配、又没有 ICS 或表格文件时,用截图 + AI 识别。
在导入页点**「识图导入」,点「提示词」**按钮复制提示词。
打开豆包,左下角切换为「专家模式」(支持多图)。
把课表截图和提示词一起发过去。截图务必带星期表头,否则识别不准。
让豆包只返回 JSON,把返回的 JSON 复制回来。
在导入页点**「粘贴」**,填入 JSON 框(支持纯 JSON,也兼容 ```json 代码块)。
点**「预览」**核对:会显示课程数量、最大节次,以及识别提醒。 展开「课程预览」可逐条检查。
点**「确认导入」**,再选择开学日期与周次对应。
返回 JSON 长什么样
提示词已经写死了输出格式,AI 应该只返回这样的纯 JSON:
{
"schema": "mikcb_ai_import_v1",
"courses": [
{
"name": "高等数学",
"teacher": "张老师",
"location": "A101",
"dayOfWeek": 1,
"startSection": 1,
"endSection": 2,
"customWeeks": [1, 2, 3],
"courseNature": "required",
"note": ""
}
],
"warnings": []
}| 字段 | 说明 |
|---|---|
dayOfWeek | 1–7 对应周一到周日 |
startSection / endSection | 起止节次,单节课两者相同 |
customWeeks | 上课周次的数组,如 [1,2,3] |
courseNature | required 必修 / elective 选修 |
note | 班级信息等备注 |
AI 识别结果可能存在偏差,导入后请逐条核对课程名称、时间、地点与周次。 提示「解析失败,请确认粘贴的是完整 JSON」时,多半是复制时被截断了。
预览里出现**「识别提醒」**不要跳过——那是 AI 自己标出的可疑行, 点开看清楚再决定要不要继续。
二维码面对面传输
两台设备之间直接传课表,不需要网络。
发送方:进入「设置 → 数据备份与迁移 → 二维码面对面传输」, 选择二维码发送当前课表或二维码发送全部数据。
接收方:点**「扫码接收课表数据」**,把摄像头对准对方屏幕。
双方保持稳定,等待进度条走完。页面会显示已发送 / 已接收帧数、解码进度与传输速度。
接收完成后自动导入,可按需覆盖或导入为新课表。
也可分享更轻量的一周课表:选择「分享本周课表」或「分享勾选的课程」。
二维码传输是明文的,附近摄像头可能读取内容。应用会先提示风险确认, 未经确认不会覆盖数据。传输过程中只对准一台设备,否则会提示「检测到不同传输内容」。
传输页会实时显示已发送 / 已接收帧数与总帧数、新增帧、重复帧、解码帧率、 采样帧率、已用时间和接收速度——卡住时能一眼看出是画面对不上还是单纯慢。
中断或失败时(超时、解码失败、校验失败、数据超出上限等)的提示含义与处理, 统一见故障排查 → 二维码传输中断。
发送页上点**「停止发送」可随时中断;接收页有「重新开始」**。
导入后的收尾
不管用哪种方式导入,建议做三件事:
核对时间模板:检查节次时间是否和本校作息一致。不一致的话课表行高和提醒时刻都会偏。
核对开学日期与当前周:在「课表设置」顶部摘要卡看「当前第 N 周 / 共 M 周」。
补课程简称:简称不会自动生成。批量导入后建议给主要课程补上 3 字以内的简称, 超级岛和小组件才不会截断。
相关
- 手动增删课程:课程与排课
- 备份与换机:同步与备份
- 学校没被适配:常见场景怎么做 → 场景 2
- 参与教务适配:AI 协作适配教务