# 导出与打印 ## 导出成绩明细 工具栏下方「导出」条里的 **导出成绩**,生成 `.xlsx`(零依赖,仓库内自行实现 XLSX 写入,不需要 `zip` 扩展也能用)。 导出控件单独成行,与筛选、刷新分开,不会挤在一起。 ### 三种可选模式 | 选项 | 效果 | | --- | --- | | 导出排序 | `按提交时间` / `按学号` / `按成绩降序` / `按成绩升序` | | 按最新成绩 | 每人**只导一行**:最近一次成绩 + 最高分 + 考试次数 | | 按班级分表 | 一个班级一个工作表(xlsx 多工作表) | ### 列 默认列(全部记录模式): `学号 / 姓名 / 班级 / 组别 / 成绩 / 考试次数 / 第几次 / 提交时间 / 考试时长 / 考试时长(秒)` 按最新成绩模式: `学号 / 姓名 / 班级 / 组别 / 最新成绩 / 最高分 / 考试次数 / 最近提交时间 / 考试时长 / 考试时长(秒)` > 学号等长数字列统一按**文本格式**写入,不会被 Excel 转成科学计数法,也不会被当作公式执行。 ### 文件名 ``` 成绩明细_<试卷名>[_<班级>][_<组别>][_最新成绩]_.xlsx ``` ### 跟随筛选 导出**完全跟随页面当前的班级 / 组别筛选**,缺考口径也与页面一致 (筛选后名单 − 筛选后已提交,按学号匹配),不会出现"页面上 30 人、导出 50 人"的情况。 ## 导出缺考名单 工具栏 **导出缺考**,列为 `学号 / 姓名 / 班级 / 组别`,按学号升序。 ## 打印成绩明细 成绩明细面板右上角 **打印**,弹窗里可设置: | 选项 | 说明 | | --- | --- | | 打印标题 | 默认「试卷名 + 成绩明细」,可改成学校/考试正式名称 | | 排序方式 | 成绩降序(默认)/ 升序 / 学号 / 提交时间 | | 分组对比 | 按班级或组别分段,段首给出小计(人数/平均/最高/最低/合格人数与合格率) | | 纸张方向 | A4 纵向(列少清晰)或横向(列多不折行) | | 显示名次 | 全表连续编号,不分组也不会因为分段重新从 1 开始 | | 显示「是否合格」列 | 低于合格线的成绩与「不合格」标红,一眼定位 | | 显示考试次数 | 便于发现反复重考的人 | | 附缺考名单 | 成绩表后**另起一页**附缺考名单,带空白备注列供手写 | 其它细节: - 表头在**每一页自动重复**,行不会被切断到两页; - 页眉含范围(班级/组别)、打印时间、人数、平均分、最高/最低、合格人数与合格线; - 页脚含**教师 / 教研组长签字栏与日期**,可直接签字归档; - 打印走隐藏 iframe 调起,**不会被浏览器的弹窗拦截挡掉**,也不会多开标签页。 ## 打印缺考名单 缺考名单面板右上角 **打印**:按班级分组、班内按学号排序,同样带页眉与签字栏, 备注列留空供手写说明(请假、缓考等)。 ## 直接调用导出接口 需要对接其它系统时,可以带参数直接 GET(需已登录): ``` api.php?action=export&projectId=xxx&cls=1&grp=A&mode=latest&split=cls&sort=score_desc&cols=sid,name,score ``` | 参数 | 取值 | 说明 | | --- | --- | --- | | `projectId` | 试卷 ID | 必填 | | `cls` / `grp` | 班级 / 组别 | 与页面筛选一致 | | `mode` | `latest` | 每人一行最新成绩;缺省导出全部记录 | | `split` | `cls` | 按班级拆分多工作表 | | `sort` | `time` / `sid` / `score_desc` / `score_asc` | 排序 | | `cols` | 逗号分隔列名 | 从默认列中挑选 | ## 相关 - [成绩明细与统计口径](./scores.md) - [接口一览](../dev/api.md)