Preparing your data for a mass (batch) import

Manually entering several hundred or thousand rows (teachers, students, rooms, lessons…) is rarely wise. Omniscol offers mass imports by copy-paste from any spreadsheet (Excel, Google Sheets, Numbers, Calc…), in CSV or TSV format. These imports are performed by clicking the buttons, usually at the top of entity listings. A few of them only export data, but most accept imports.

What can be imported?

Entity Screen Typical volume
Teachers Export data in CSV format 10 - 1000
Students Export data in CSV format 50 - 10,000
Rooms Export data in CSV format 10 - 500
Custom subjects Export data in CSV format 10 - 1000
Lessons of a timetable Export data in CSV format 100 - 10,000

Preparing your files

Golden rules:

  1. One row = one entity. No merged rows, no multi-line headers.
  2. Follow the column order expected by Omniscol. The import screen shows the template with the columns in the target order, and you can reorder these columns on the Omniscol side to match the order of your source spreadsheet — which makes the copy-paste from Excel or Google Sheets clean, without rewriting your file.
  3. Some columns are read-only. They are then greyed out, intended only for exporting the data. The first column is usually the identifier of the data already stored in the database.
  4. Columns marked with an "*" are required. If a required field is missing, the row is ignored (not imported at creation, or deleted if it already existed in the database).
  5. Separators inside a cell are free in lists (multi-teacher, multi-group, multi-room lessons): comma, semicolon, slash.
  6. The built-in AI will clean the data, but only up to a point: try to provide clean, unambiguous data, otherwise you may be in for a few unpleasant surprises.

Typical fields per entity

Teachers

  • First name, Last name (required).
  • Email (recommended for invitations).
  • Registration number / external ID (optional but useful for traceability).
  • Subjects taught (list, free separators).
  • Service hours (planned number of weekly hours).
  • Main site (if multi-site).

Students

  • First name, Last name (required).
  • Email (recommended).
  • SIS registration number (useful to avoid mixing up namesakes).
  • Level / Class.
  • Groups (elective, subgroup).
  • Status (active, pre-enrolled, inactive).

Rooms

  • Name (required).
  • Site (required if multi-site — otherwise Omniscol assigns the default site).
  • Capacity.
  • Specialisations (list).
  • Building (free text).
  • Tags / comments.

Lessons

  • Class + subject (at minimum).
  • Duration (otherwise deduced from the start/end times).
  • Day, start time, end time (to pre-position; otherwise leave empty and position later).
  • Group (optional).
  • Lesson type (tutorial, practical, lecture, exam…).
  • Teacher(s) (free separators).
  • Room(s) (free separators — yes, multiple rooms on the same lesson are supported).
  • Resource(s).
  • Alternating weeks (format A/B, 1/2, etc.).
  • Free-text comment.

After preparation

The import flow depends on the target screen. Generally, the screen fully refreshes with the new data.

For the lessons of a timetable, see Mass import of courses from a spreadsheet, which documents the dedicated four-step wizard.

Exporting

The same built-in spreadsheet mechanism extracts the data. Several options for this:

  • Copy-paste to an external spreadsheet (TSV format, automatic).
  • Use the buttons at the bottom to export directly to a PDF, CSV or Excel (XLSX) file.

Re-importing

Importing is not limited to an initial import. It is possible to mass import in several passes. The first column, labeled "id", holds each entity's read-only identifier in the database, which can also be found in the URLs. If you edit a row matching a given identifier, the entity's data is updated.

To add new data, just go to the very bottom of the spreadsheet, where there are always a few empty rows with no identifier attached. Pasting new data, as in the initial import, grows the table accordingly.

Re-imported entities may carry complex data that is not eligible for import/export (sometimes a read-only column exists solely to export that data). This is for example the case for time constraints on teachers, rooms, classes, etc. In that case, the identical re-injection is automatic.

This system thus lets you mass import in several passes without losing enriched data on existing entities, while still being able to create new ones or delete others.

Mass deletion

As seen for re-importing, the first "id" column identifies the different entities. If you clear a row — at least the required columns marked with an "*" — the import will delete the emptied entities. Since you can select several rows and columns, as in a standard spreadsheet, just press the Delete key to clear as many rows as you want, and thus delete the corresponding entities from the database, in bulk.

See also