SCUT_Lesson_Table
华南理工大学教务系统课表导出工具 — 油猴/Tampermonkey 用户脚本
功能
- 自动查询:进入课表页面自动加载数据,无需手动点击
- 9 种导出格式:JSON / CSV / TXT / Markdown / iCal / DOCX / XLSX / PDF / JPG
- 多格式同时导出:checkbox 多选,一次导出多种格式
- 23 个可选字段:课程名称、教师、地点、学分、教学班、考核方式等
- 课程合并:同课程不同教师/周次自动合并,支持不连续周次和双单周标记
- AJAX 拦截:直接获取教务系统 JSON 数据,比解析 DOM 更完整可靠
安装
- 安装 Tampermonkey 或 Violentmonkey
- 浏览器地址栏输入
file:/// + 脚本完整路径,如:file:///C:/Users/你的用户名/Documents/SCUT_Lesson_Table/SCUT_Lesson_Table.user.js
- 油猴弹出安装提示,点击"安装"
或在油猴管理面板 → "+" 新建脚本 → 粘贴代码 → 保存。
使用
- 打开 华工教务系统 → 个人课表查询
- 脚本自动加载课表数据,右下角出现"导出课表"按钮(绿点表示数据就绪)
- 点击按钮打开导出面板
- 选择格式、勾选字段、决定是否合并课程
- 点击"导出"
导出格式
| 格式 |
说明 |
依赖 |
| JSON |
结构化数据 |
无 |
| CSV |
Excel 可直接打开(UTF-8 BOM) |
无 |
| TXT |
Tab 分隔纯文本 |
无 |
| Markdown |
按星期分组的表格 |
无 |
| iCal (.ics) |
日历格式,可导入日历应用 |
无 |
| DOCX |
Word 文档 |
无 |
| XLSX |
Excel 格式 |
SheetJS(自动加载) |
| PDF |
A4 分页 |
jsPDF + html2canvas(自动加载) |
| JPG |
高清截图 |
html2canvas(自动加载) |
需要外部库的格式首次使用时自动从 CDN 加载,无需手动安装。
课程合并
勾选"合并同课程不同教师/周次的条目"后:
- 合并条件:课程号 + 星期 + 节次 相同的条目
- 教师:不同教师名用逗号连接
- 周次:自动合并(支持
1-4周,9-12周 不连续格式)
- 地点:不同地点用
/ 连接
- 双单周:支持
8-10周(双) 表示仅双周
合并前(4 条):
高等数学A | 张老师 | 星期一 | 1-2 | 1-4周
高等数学A | 李老师 | 星期一 | 1-2 | 5-8周
高等数学A | 王老师 | 星期一 | 1-2 | 9-12周
高等数学A | 赵老师 | 星期一 | 1-2 | 13-16周
合并后(1 条):
高等数学A | 张老师,李老师,王老师,赵老师 | 星期一 | 1-2 | 1-16周
可选字段
基础字段(默认勾选):
课程名称、课程号、教师、星期、节次、时间/周次、上课地点、学分
扩展字段(默认不勾选):
教师职称、主辅讲、教学班、教学班组成、选课备注、课程学时组成、周学时、总学时、课程总学时、考核方式、考试方式、授课方式名称、重修标记、课程性质、课程标记
版本历史
| 版本 |
变化 |
| v1.0 |
初始版本,正则解析 DOM,仅 JSON 导出 |
| v2.0 |
重写:AJAX 拦截、字段选择、JSON/CSV/iCal/Markdown |
| v3.0 |
多选格式,新增 TXT/DOCX/XLSX/PDF/JPG |
| v4.0 |
新增课程合并功能 |
| v5.0 |
尝试借用系统导出(失败),改进合并逻辑 |
| v6.0 |
去掉系统导出,修复 Array.prototype 问题 |
| v6.1 |
页面加载自动查询 |
各版本可在 Releases 下载。
技术实现
- 通过 Hook
jQuery.ajax 拦截 /kbcx/xskbcx_cxXsgrkb.html 获取课程 JSON 数据
- DOCX 使用手写 ZIP + Office Open XML 生成,无需外部库
- XLSX/PDF/JPG 通过 CDN 动态加载 SheetJS、jsPDF、html2canvas
- 兼容教务系统对
Array.prototype 的扩展
许可证
GPL-3.0 License