csvreader seems to do reasonable things with extra and missing columns.