为批量导入准备数据(成批导入)

手动录入几百甚至上千行数据(教师、学生、教室、课程……)很少是明智之举。Omniscol支持批量导入:从任意电子表格(Excel、Google Sheets、Numbers、Calc……)复制数据后直接粘贴,格式为CSV或TSV。点击各实体列表顶部的 按钮即可进行导入。少数列表只能导出数据,但大多数都支持导入。

可以导入哪些数据?

实体 界面 常见数据量
教师 以CSV格式导出数据 10 - 1000
学生 以CSV格式导出数据 50 - 10 000
教室 以CSV格式导出数据 10 - 500
自定义科目 以CSV格式导出数据 10 - 1000
课表中的课时 以CSV格式导出数据 100 - 10 000

准备文件

基本规则:

  1. 一行对应一个实体。 不要合并单元格,不要使用多行表头。
  2. 遵循Omniscol要求的列顺序。 导入界面会按目标顺序显示模板列,您也可以在Omniscol中重新排列这些列,使其与源表格的顺序一致——这样从Excel或Google Sheets复制粘贴时就很顺畅,无需改写原文件。
  3. 部分列为只读。 这些列显示为灰色,仅用于导出数据。第一列通常是该数据已保存在数据库中的标识符。
  4. 标有“*”的列为必填。 如果缺少必填字段,该行将被忽略(新建时不导入;若该数据已存在于数据库中,则会被删除)。
  5. 列表型单元格中的内部分隔符不受限制(一门课程的多位教师、多个小组、多间教室):逗号、分号、斜杠均可。
  6. 内置AI会清理数据,但能力有限:请尽量提供干净、无歧义的数据,否则可能出现意料之外的结果。

各实体的常用字段

教师

  • 名字、姓氏(必填)。
  • 电子邮件(建议填写,用于发送邀请)。
  • 工号 / 外部ID(选填,便于追溯)。
  • 任教科目(列表,分隔符不受限制)。
  • 服务时间(每周计划授课小时数)。
  • 主校区(如有多个校区)。

学生

  • 名字、姓氏(必填)。
  • 电子邮件(建议填写)。
  • 学号(来自学生信息系统,有助于避免重名混淆)。
  • 年级 / 班级。
  • 小组(选修课、子小组)。
  • 状态(在读、预注册、停用)。

教室

  • 名称(必填)。
  • 校区(多校区时必填;否则Omniscol归入默认校区)。
  • 容量。
  • 专业教室类型(列表)。
  • 教学楼(自由填写)。
  • 标签 / 评论。

课表中的课时

  • 班级 + 科目(至少需要这两项)。
  • 时长(缺省时由开始和结束时间推算)。
  • 星期、开始时间、结束时间(用于预先排定位置;也可留空,之后再排)。
  • 小组(选填)。
  • 课时类型(习题课、实验课、讲授课、考试……)。
  • 教师(分隔符不受限制)。
  • 教室(分隔符不受限制——是的,同一课时支持多教室(一个课时占用多间教室))。
  • 资源。
  • 交替周(格式为 A/B、1/2 等)。
  • 评论(自由文本)。

准备完成之后

导入流程取决于目标界面。通常,导入后界面会整体刷新并显示新数据。

要导入课表中的课时,请参见 通过表格批量导入课程,其中介绍了分四步完成的专用向导。

导出

同一套内置表格功能也可用于提取数据。有以下几种方式:

  • 复制粘贴到外部电子表格(自动采用TSV格式)。
  • 使用底部的按钮,直接导出为PDF、CSV或Excel(XLSX)文件。

再次导入

导入并不局限于首次导入。您可以分多次进行批量导入。第一列名为“id”,是每个实体在数据库中的只读标识符,也可以在网址(URL)中找到。如果修改了与某个标识符对应的行,该实体的数据就会随之更新。

要新增数据,请滚动到表格最底部:那里总有几行没有标识符的空行。像首次导入一样粘贴新数据,表格会相应地扩展。

再次导入的实体可能包含不支持导入/导出的复杂数据(有时会有一个只读列,仅用于导出这些数据),例如教师和教室的可用时间,或班级的时间限制。这时,这些数据会被原样自动回填。

因此,借助这套机制,您可以分多次批量导入,既不会丢失现有实体上已补充的数据,又能新建或删除其他实体。

批量删除

如“再次导入”一节所述,第一列“id”用于识别各个实体。如果清空一行——至少清空标有“*”的必填列——导入时就会删除这些被清空的实体。由于可以像在标准电子表格中那样选择多行多列,只需按键盘上的删除键,就能清除任意多行,从而批量删除数据库中对应的实体。

另请参阅