Added row processing based on column names rather than a bare array. Added handling for data outside of regular sheet.