title: How to make fast the import of an excel file containing more than 5000 lines into sqlite database with django
body: <p>Import xls file (more than 5000 lines) into my sqlite database takes so long.</p>
  
  <pre>
  def importeradsl(request):
  if "GET" == request.method:
      else:
          excel_file = request.FILES["excel_file"]
          #you may put validations here to check extension or file size
          wb = openpyxl.load_workbook(excel_file)
          #getting a particular sheet by name out of many sheets
          worksheet = wb["Sheet 1"]
          #iterating over the rows and getting value from each cell in row
          for row in worksheet.iter_rows(min_row=2):
              row_data = list()
              for cell in row:
                  row_data.append(str(cell.value))
              #Get content fields DerangementCuivre models
              #Client
              nd = row_data[0]
              nom_client = row_data[3]
              nd_contact = row_data[4]
              #Categorie
              code_categorie = row_data[6]
              acces_reseau = row_data[8]
              etat = row_data[9]
              origine = row_data[10]
              code_sig = row_data[11]
              agent_sig = row_data[13]
              date_sig = dt.datetime.strftime(parse(row_data[14]), '%Y-%m-%d %H:%M:%S')
              date_essai = dt.datetime.strftime(parse(row_data[15]), '%Y-%m-%d %H:%M:%S')
              agent_essai = row_data[18]
              try:
                  date_ori = dt.datetime.strptime(row_data[19], '%Y-%m-%d %H:%M:%S')
              except ValueError as e:
                  print ("Vous", e)
              else:
                  date_ori = dt.datetime.strftime(parse(row_data[19]), '%Y-%m-%d %H:%M:%S')
              agent_ori = row_data[20]
              code_ui = row_data[21]
              equipe = row_data[22]
              sous_traitant = row_data[23]
              date_pla = dt.datetime.strftime(parse(row_data[24]), '%Y-%m-%d %H:%M:%S')
              date_rel = dt.datetime.strftime(parse(row_data[25]), '%Y-%m-%d %H:%M:%S')
              date_releve = dt.datetime.strptime(row_data[25], '%Y-%m-%d %H:%M:%S')
              date_essais = dt.datetime.strptime(row_data[15], '%Y-%m-%d %H:%M:%S')
              pst = pytz.timezone('Africa/Dakar')
              date_releve = pst.localize(date_releve)
              utc = pytz.UTC
              date_releve = date_releve.astimezone(utc)
              date_essais = pst.localize(date_essais)
              date_essais = date_essais.astimezone(utc)
              code_rel = row_data[26]
              localisation = row_data[27]
              cause = row_data[28]
              commentaire = row_data[29]
              agent_releve = row_data[30]
              centre_racc = row_data[32]
              rep = row_data[33]
              srp = row_data[34]
              delai = (date_releve - date_essais).total_seconds()
              dali = divmod(delai, 86400)[0]
              semaine = date_releve.isocalendar()[1]
              mois = date_releve.month
              annee = date_releve.year
              if dali > 7:
                  etats = "PEX PLUS"
              else:
                  etats = "PEX"
              #Enregistrer un client
              Client(nd=nd, nom=nom_client, mobile=nd_contact).save()
              #Enregistrer la categorie
              #Code pour nom categorie - renseigner plus tard
              Categorie(code_categorie=code_categorie, nom="Public").save()
              #Enregistrer agent de signalisation
              AgentSig(matricule=agent_sig, nom="Awa").save()
              #Enregistrer agent d'essai
              AgentEssai(matricule=agent_essai).save()
              #Enregister agent d'orientation
              AgentOri(matricule=agent_ori).save()
              #Enregistrer agent de relève
              AgentRel(matricule=agent_releve).save()
              #Enregistrer le sous-traitant
              SousTraitant(nom=sous_traitant).save()
              #Enregistrer le centre
              Centre(code=centre_racc).save()
              #Enregistrer ui
              UniteIntervention(code_ui=code_ui, 
              sous_traitant=SousTraitant.objects.get(nom=sous_traitant)).save()
              #Enregistrer le repartiteur
              Repartiteur(code=rep, crac=Centre.objects.get(code=centre_racc)).save()
              #Enregistrer team
              Equipe(nom=equipe, unite=UniteIntervention.objects.get(code_ui=code_ui)).save()
              #Enregistrer le SR
              SousRepartiteur(code=srp, rep=Repartiteur.objects.get(code=rep)).save()
              #Enregistrer le drangement
              DerangementAdsl(acces_reseau=acces_reseau,
                              nd_client=Client.objects.get(nd=nd),
                              categorie=Categorie(code_categorie=code_categorie),
                              etat=etat,
                              origine=origine,
                              code_sig=code_sig,
                              agent_sig=AgentSig.objects.get(matricule=agent_sig),
                              date_sig=date_sig,
                              date_essai=date_essai,
                              agent_essai=AgentEssai.objects.get(matricule=agent_essai),
                              date_ori=date_ori,
                              agent_ori=AgentOri.objects.get(matricule=agent_ori),
                              sous_traitant=SousTraitant.objects.get(nom=sous_traitant),
                              unite_int = UniteIntervention.objects.get(code_ui=code_ui),
                              date_pla=date_pla,
                              date_rel=date_rel,
                              code_rel=code_rel,
                              code_local=localisation,
                              cause=cause,
                              comment_cause=commentaire,
                              agent_rel=AgentRel.objects.get(matricule=agent_releve),
                              centre=Centre.objects.get(code=centre_racc),
                              rep=Repartiteur.objects.get(code=rep),
                              srep=SousRepartiteur.objects.get(code=srp),
                              delai=dali,
                              etat_vr=etats,
                              semaine=semaine,
                              mois=mois,
                              annee=annee).save()
  </pre>