def process_company_file(data_file): workbook = xlrd.open_workbook(settings.MEDIA_ROOT+'/'+data_file.uploaded_file.name) worksheets = workbook.sheet_names() data_file.number_of_sheets = len(worksheets) data_file.save() for worksheet_name in worksheets: worksheet = workbook.sheet_by_name(worksheet_name) num_rows = worksheet.nrows - 1 curr_row = 0 while curr_row < num_rows: curr_row += 1 company_name = worksheet.cell_value(curr_row, 0) industry = worksheet.cell_value(curr_row, 1) isin = worksheet.cell_value(curr_row, 2) bse_code = worksheet.cell_value(curr_row, 3) industry, created = Industry.objects.get_or_create(industry_name=industry) industry.created_by = data_file.uploaded_by industry.save() try: company = Company.objects.get(isin_code=isin) except: try: company = Company.objects.get(company_name=company_name) except: company = Company() company.isin_code = isin if bse_code: company.BSE_code = int(bse_code) company.industry = industry company.company_name = company_name company.created_by = data_file.uploaded_by company.save() data_file.processing_completed = True data_file.save()