{source}
<html>
<head>
</head>
<body>
<form method="POST" enctype="multipart/form-data">
<input type="file" name="fichier" />
<input type="submit" value="envoyer" />
</form>
</body>
</html>
<?php
if(!empty($_FILES))
{
$file_name=$_FILES['fichier']['name'];
$file_extension=strrchr($file_name,".");
$file_tmp=$_FILES['fichier']['tmp_name'];
$file_dest='files/'.$file_name;
$extensions=array('.xls','.xlsx');

if(in_array($file_extension,$extensions))
{
if(move_uploaded_file($file_tmp,$file_dest))
{


jimport('phpexcel.library.PHPExcel');

// Chargement du fichier Excel
$objPHPExcel = PHPExcel_IOFactory::load($file_dest);

/**
* récupération de la première feuille du fichier Excel
* @var PHPExcel_Worksheet $sheet
*/
$sheet = $objPHPExcel->getSheet(0);



// On boucle sur les lignes

$ligne=0;

foreach($sheet->getRowIterator() as $row) {
if($ligne > 3){

$db = JFactory::getDbo();

// Create a new query object.
$query = $db->getQuery(true);
$query2 = $db->getQuery(true);
$query3 = $db->getQuery(true);

// Insert columns.
$columns = array('username', 'password','name', 'activation');
$columnsprofil = array('num_inscri','cin', 'nom', 'prenom','sexe','date_naissance','statut','passeport','adresse','code_gouver','lieu_nais','tel_fixe','tel_portable','code_bac','inscription', 'groupe', 'user_id');
$columnsgroups = array('user_id', 'group_id');
$valuesgroups = array();
// Insert values.
$values = array();
$valuesprofil = array();

$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);

$i = 0;
// On boucle sur les cellule de la ligne
foreach ($cellIterator as $cell) {
if($cell->getColumn()== 'A' ){
$valuesprofil[0]=$db->quote($cell->getValue());
$i++;
}
if($cell->getColumn()== 'B' ){
$values[0]=$db->quote($cell->getValue());
jimport('joomla.user.helper');
$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword($cell->getValue(), $salt);
$password = $crypt.':'.$salt;
$values[1]=$db->quote($password);
$valuesprofil[1]=$db->quote($cell->getValue());

$i++;
}
if($cell->getColumn()== 'E') {
$values[2]=$db->quote($cell->getValue());
$valuesprofil[2]=$db->quote($cell->getValue());

$i++;
}
if($cell->getColumn()== 'F') {
$valuesprofil[3]=$db->quote($cell->getValue());
$i++;
}
if($cell->getColumn()== 'G') {
$valuesprofil[4]=$db->quote($cell->getValue());
$i++;
}
if($cell->getColumn()== 'G') {
$valuesprofil[5]=$db->quote($cell->getValue());
$i++;
}
if($cell->getColumn()== 'L') {
$valuesprofil[6]=$db->quote($cell->getValue());
$i++;
}
if($cell->getColumn()== 'M') {
$valuesprofil[7]=$db->quote($cell->getValue());
$i++;
}
if($cell->getColumn()== 'N') {
$valuesprofil[8]=$db->quote($cell->getValue());
$i++;
}
if($cell->getColumn()== 'P') {
$valuesprofil[9]=$db->quote($cell->getValue());
$i++;
}
if($cell->getColumn()== 'K') {
$valuesprofil[10]=$db->quote($cell->getValue());
$i++;
}
if($cell->getColumn()== 'R') {
$valuesprofil[11]=$db->quote($cell->getValue());
$i++;
}
if($cell->getColumn()== 'S') {
$valuesprofil[12]=$db->quote($cell->getValue());
$i++;
}
if($cell->getColumn()== 'T') {
$valuesprofil[13]=$db->quote($cell->getValue());
$i++;
}
if($cell->getColumn()== 'U' ){
$valuesprofil[14]=$db->quote($cell->getValue());

if($cell->getValue()=='C'){
$values[3]=$db->quote(0);
}
else
{
$values[3]=$db->quote(1);
}
}
if($cell->getColumn()== 'V') {
$valuesprofil[15]=$db->quote($cell->getValue());
$i++;
}
}

// Prepare the insert query.
$query->select($db->quoteName(array('username', 'id')));
$query->from($db->quoteName('#__users'));
$query->where($db->quoteName('username') . ' LIKE '. $values[0]);
$db->setQuery($query);
$db->execute();
$num_rows = $db->getNumRows();
$result = $db->loadObjectList();
foreach($result as $key=>$value){
$id= $value->id;
}
//update ligne
if ($num_rows != 0){
$fields = array(
$db->quoteName('username') . ' = ' . $values[0],
$db->quoteName('password') . ' = '. $values[1],
$db->quoteName('name') . ' = '. $values[2],
$db->quoteName('activation') . ' = '. $values[3]
);
$query->update($db->quoteName('#__users'))->set($fields);
// Set the query using our newly populated query object and execute it.
$db->setQuery($query);
$db->execute();

$query2->select($db->quoteName(array('profil_id', 'nom')));
$query2->from($db->quoteName('#__profil_etudiant'));
$query2->where($db->quoteName('user_id') . ' LIKE '. $value->id);
$db->setQuery($query2);
$db->execute();
$num_rows2 = $db->getNumRows();
print_r($num_rows2);
$result2 = $db->loadRowList();
$valuesprofil[16]=$value->id;
if ($num_rows2 != 0){

$fields2 = array(
$db->quoteName('num_inscri') . ' = ' . $valuesprofil[0],
$db->quoteName('cin') . ' = ' . $valuesprofil[1],
$db->quoteName('nom') . ' = '. $valuesprofil[2],
$db->quoteName('prenom') . ' = '. $valuesprofil[3],
$db->quoteName('sexe') . ' = '. $valuesprofil[4],
$db->quoteName('date_naissance') . ' = ' . $valuesprofil[5],
$db->quoteName('statut') . ' = '. $valuesprofil[6],
$db->quoteName('passeport') . ' = '. $valuesprofil[7],
$db->quoteName('adresse') . ' = '. $valuesprofil[8],
$db->quoteName('code_gouver') . ' = ' . $valuesprofil[9],
$db->quoteName('lieu_nais') . ' = '. $valuesprofil[10],
$db->quoteName('tel_fixe') . ' = '. $valuesprofil[11],
$db->quoteName('tel_portable') . ' = '. $valuesprofil[12],
$db->quoteName('code_bac') . ' = ' . $valuesprofil[13],
$db->quoteName('inscription') . ' = '. $valuesprofil[14],
$db->quoteName('groupe') . ' = '. $valuesprofil[15],
$db->quoteName('user_id') . ' = '. $valuesprofil[16]
);
$query2->update($db->quoteName('#__profil_etudiant'))->set($fields2);
$db->setQuery($query2);
$db->execute();
}

}
//insertion ligne
else{
$query
->insert($db->quoteName('#__users'))
->columns($db->quoteName($columns))
->values(implode(',', $values));
// Set the query using our newly populated query object and execute it.
$db->setQuery($query);
$db->execute();

$lastinsertid = $db->insertid();
$valuesprofil[16]=$lastinsertid;

$query2
->insert($db->quoteName('#__profil_etudiant'))
->columns($db->quoteName($columnsprofil))
->values(implode(',', $valuesprofil));
// Set the query using our newly populated query object and execute it.
$db->setQuery($query2);
$db->execute();

$valuesgroups[0]=$db->quote($lastinsertid);
$valuesgroups[1]=$db->quote('11');
$query3 = $db->getQuery(true);
// Set the query using our newly populated query object and execute it.
$query3
->insert($db->quoteName('#__user_usergroup_map'))
->columns($db->quoteName($columnsgroups))
->values(implode(',', $valuesgroups));
$db->setQuery($query3);
$db->execute();

}

}
$ligne++;
$url=null;
//$user = &JFactory::getuser();
}
?>

<div class="alert alert-success"> <p>Le fichier est envoyé avec succes</p>
</div><?php
}
else{
?>

<div class="alert alert-success"> <p>Le fichier n'est pas envoyé</p>
</div><?php
}
}
else
{
?>

<div class="alert alert-success"> <p>Le fichier n'est pas un fichier excel</p>
</div><?php
}

}
$_FILES['fichier']['name']='';
$_FILES['fichier']['tmp_name']='';

?>
{/source}