The CSV import module allows new columns to be added and even existing grades to be updated.
The GUI should allow some visual checking of the data before inserting.
Either ALL the data gets imported or none does. If there are errors then the whole import must fail.