[RESOLU] Récupération de donné script php pour tableur excel

Petit nouveau ! | 2 Messages

15 mai 2023, 02:47

Code : Tout sélectionner

<?php require 'vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\IOFactory; // Chemin vers le fichier Excel $filePath = 'Etape_1_Responses.xlsx'; // Charge le fichier Excel $spreadsheet = IOFactory::load($filePath); // Sélectionne la première feuille de calcul $worksheet = $spreadsheet->getActiveSheet(); // Boucle sur les lignes à partir de la deuxième ligne foreach ($worksheet->getRowIterator(2) as $row) { $dataRow = []; foreach ($row->getCellIterator() as $cell) { $dataRow[] = $cell->getValue(); } // Obtient le nom et le prénom du candidat $nom = $dataRow[8]; // Colonne I $prenom = $dataRow[9]; // Colonne J // Génère le contenu du fichier PHP $content = '<?php' . PHP_EOL; foreach ($dataRow as $value) { $content .= $value . PHP_EOL; } // Nom du fichier PHP $filename = 'Candidats/' . $nom . ' ' . $prenom . '.php'; // Enregistre le contenu dans le fichier PHP file_put_contents($filename, $content); echo "Le fichier '$filename' a été créé avec succès." . PHP_EOL; } ?>
Techniquement, je souhaite récupérer les donner de mon tableur pour des candidats.
La première ligne comporte les entêtes d'une enquête que j'effectue. Je ne peux que l'extraire en xlsx.
Je souhaite récupérer ces données en créant un fichier d'identité.
Dans ce fichier, les 8 premières colonnes du tableur sont totalement ignoré volontairement ( car inutile pour mon étude )
Je souhaite que le fichier comporte le nom trouver dans le tableur sous forme : Nom Prénom.php

Mon soucis :
Le script fonctionne très bien... à partir du deuxième candidats. Impossible d'avoir le premier candidat qui se trouve dans la ligne 2 de mon tableur et je ne comprends pas pourquoi.

Voici mon résultat sur la page du script :
( ! ) Warning: file_put_contents(Candidats/Bruno Karo*.php): Failed to open stream: No such file or directory in C:\wamp64\www\Projet\Script 1.php on line 36
Call Stack
# Time Memory Function Location
1 0.0005 361024 {main}( ) ...\Script 1.php:0
2 0.0223 1172136 file_put_contents( $filename = 'Candidats/Bruno Karo*.php', $data = '<?php\r\n2023-05-13 13:12:00 -0400\r\n2023-05-13 13:11:58 -0400\r\n53\r\n\r\n8 de 18\r\n44.44\r\n0\r\n0\r\nBruno\r\nKaro*\r\n7\r\nSeul\r\nAutre\r\nDans la rue\r\nDans La Gare\r\nUniquement ce que j\'ai sur moi\r\nOui\r\nEntre 10 et 15 \r\nNon\r\nBleu\r\n' ) ...\Script 1.php:36
Le fichier 'Candidats/Bruno Karo*.php' a été créé avec succès.
Le fichier 'Candidats/Jean huit.php' a été créé avec succès.
Le fichier 'Candidats/Max trens.php' a été créé avec succès.
Seulement, pas de fichier Bruno Karo
Fichier Jean Huit parfait
Fichier Max Trens parfait

Mammouth du PHP | 2703 Messages

15 mai 2023, 02:50

le caractère * est interdit dans un nom de fichier sous windows.

Petit nouveau ! | 2 Messages

15 mai 2023, 08:57

Je ne sais pas si je dois classer cela dans ... ne sais pas quoi dire... ou dans ... c'est tellement évident :lol:
La fatigue surement.
Merci