clss = parseSheet(sheet) for c in clss: c.teacher.grade = name classes += clss IDs = wb.sheet_by_name("IDs") students = [] id_rows = (IDs.row(i) for i in xrange(1, IDs.nrows)) for row in id_rows: s = Student( studentID=int(row[0].value), id=int(row[0].value), name=sanitize(str(row[1].value)), grade=sanitize(str(row[3].value)), ) s.teacher_name = sanitize(str(row[2].value)).split()[0] students.append(s) print 'Found', len(students), 'Students' missingStudents = [] missingTableEntries = [] for student in students: clazz = None # print '-----' for c in classes: # print repr(c.teacher.name) if nameEquals(c.teacher.name, student.teacher_name): clazz = c c.used = True break if not clazz: