$newline never $# SPDX-FileCopyrightText: 2022 Gregor Kleen $# $# SPDX-License-Identifier: AGPL-3.0-or-later

Remarks regarding CSV import
Data formatting
When importing the format expected (per column) is the same as it would be # produced when exporting (see Column & cell format under # CSV export).
Columns may be permuted arbitrarily or left out completely (in that case # the column will be treated as if every cell contained within it was # empty).
Columns are identified based on their heading. # Thus column headings may not be modified or removed.
The separator character (comma, semicolon, tabulator, ...) is # detected automatically during import.
Imported files are expected to use the character encoding, that # is configured for CSV-export.
Edits
For most cells, importing changes the current state of the # database to reflect the content of the imported cell (i.e. exam # results).
For some cells this is not possible (i.e. the maximum number of # points of an exam part). # In that case all differences between the current state of the # database and the content of the imported cell are ignored.
Preview
Before any edits are applied a preview is shown of what would be done.
In the preview an arbitrary subset of edits may be selected for # application.
Empty cells
Cells which may be deleted are deleted or set to uniquely determined # values if the corresponding cell is empty during import.
Consistency

Only consistent edits are ever made!

Thus it can be useful to leave certain cells empty. # For example when changing the associated field of study for a course # participant one would have to change the degree and semester to match if # they are not left empty.
If they are left empty they are automatically filled in if their values # can be uniquely determined (which is usually the case).

Identification of rows
Multiple columns may be used to identify each row.
Thus not every cell used to identify a row needs to be filled, as long as # the row can still be uniquely identified.
If multiple columns used for identification are not empty their values # need to be consistent.
Adding rows
Additional rows may be added as long as sufficient information is # provided. # For example course participants may be added this way.
Deleting rows
Rows that are missing in the imported file are offered up for deletion # during the edit preview.