1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
   | <?php
 
// Code d'importation des XLS.
require 'C:\Windows\System32\vendor\autoload.php';
 
$inputFileType = 'Xls';
$inputFileName = './presences_enfants.XLS';
 
try
{
	$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
	$reader->setReadDataOnly(true);
	$spreadsheet = $reader->load($inputFileName);
}
 
catch(Exception $e)
{
    // Si l'ouverture échoue, on l'indique à l'utilisateur et on arrête l'exécution du script.
    echo 'Le fichier "'.$inputFileName.'" est introuvable.'; // METTRE A JOUR POUR ENVOYER UN MAIL AUX ADMINISTRATEURS !!!
    exit();
}
 
// Définition d'un tableau associatif qui contiendra l'ensemble des données des cellules.
$arrayExcel = [];
 
// Séléction de la feuille du document à insérer
$sheet = $spreadsheet->getSheet(0);
// Nombre de lignes de la feuille concernée.
$highestRow = $sheet->getHighestRow();
// Nombre de colonnes de la feuille concernée.
$highestColumn = $sheet->getHighestColumn();
 
// Boucle pour la création du tableau associatif.
for ($row = 1; $row <= $highestRow; $row++)
{
	// On range la ligne dans l'ordre 'normal'
    $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
	// rowData est un tableau contenant les données de la ligne
    $rowData = $rowData[0];
 
	array_push($arrayExcel, ["idenfant"=>trim($rowData[0]), "datedebut"=>trim($rowData[1]), "datefin"=>trim($rowData[2]), "annulation"=>trim($rowData[3]), "site"=>trim($rowData[4]), "numadherent"=>trim($rowData[5]), "nomenfant"=>trim($rowData[6])]);
}
// Suppression de la première ligne qui contient les entêtes de colonnes.
array_shift($arrayExcel);
// Fin de gestion du fichier XLS.
 
// Lancement de la connexion au serveur MariaDB via PDO.
$base = mysqli_connect("127.0.0.1", "test", "123456", "tv_bat13");
 
// Enregistrement des éléments du tableau dans la BDD.
foreach($arrayExcel as $ligne)
{
	// Modification de la date d'entrée pour correspondre à une date MySQL. (Date Excel)
	$dated = $ligne['datedebut'] * 86400 - 2209161600; // Conversion de la date en timestamp.
	$datedebutmysql = date('Ymd', $dated);
	//  Modification de la date de sortie pour correspondre à une date MySQL. (Date Excel)
	$datef = $ligne['datefin'] * 86400 - 2209161600; // Conversion de la date en timestamp.
	$datefinmysql = date('Ymd', $datef);
 
 
	$idenfant = $ligne['idenfant'];
 
	if ($ligne['annulation'] == "")
	{
		$annulation = 0;
	}
	else
	{
		$annulation = 1;
	}
 
	$site = $ligne['site'];
	$numadherent = $ligne['numadherent'];
	$nomenfant = $ligne['nomenfant'];
 
	$sql = "INSERT INTO test (idenfant, datedebut, datefin, annulation, numadherent, nomenfant) VALUES ($idenfant, $datedebutmysql, $datefinmysql, $annulation, '$numadherent', '$nomenfant')";
 
	// Exécution de la requête
	$res = $base->query($sql);
 
    echo 'Entrée '.$nomenfant.' ajoutée dans la table'."</br>";
}
mysqli_close($base);
?> | 
Partager