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