Our importers were written many years ago, and at the time, a pattern was developed to use an empty cell in column A as the indicator to stop importing a table of objects. The behaviour is to consider this an end of data condition and not to throw an error even if is there are more non-empty cells that follow it. This might have made sense when the structure of the sheet was a repeating set of header block, table of related data, as is the case for timetables. This, however, is not a good idea for any sheets that are purely a single table of objects. Sheets like years, terms, courses, resources, persons, students and teachers all fit this category, so we should throw an error if we encounter an empty cell A when there are any non-empty cells that follow it.
Do we even need to consider this an error? Can't we just read all the lines?