IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

PHPExcel 1.8.0 récupérer valeur de plusieurs cellules


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2019
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2019
    Messages : 35
    Par défaut PHPExcel 1.8.0 récupérer valeur de plusieurs cellules
    bonjours je vous explique mon app web.

    l'objectif de mon application web est d'avoir un bouton que l'utilisateur clique dessus.

    Le code derrière va débuter à scanner tous les dossiers qui sont dans le dossier principal rdv

    dans le rdv folder il contient trois dossiers qui se nomme le 1000 , 1001 , 1002 ceux-ci contient des fichiers .xlsx

    récupère le dernier fichier .xslx enrigistré dans chacun des dossiers

    mais apres cela ca ne fonctionne pas error : PHPExcel_Reader_Exception: Could not open 2.xlsx for reading!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <?php
    include 'database.php';
    require 'PHPExcel/Classes/PHPExcel.php';
    require_once 'PHPExcel/Classes/PHPExcel/IOFactory.php';
     
     
    // recoit la valeur 'someAction' du bouton de la page index.
    if($_SERVER['REQUEST_METHOD'] == "POST" and isset($_POST['someAction']))
    {
    	func();
    }
     
    function func()
    {
    	//calcule le nombre de dossier dans le dossier rvd
    	$howManyFolder = count(glob('rdv/*', GLOB_ONLYDIR));
     
    	//récupère le dernier fichier .xslx sauvegardé dans chacun des dossiers
    	for ($i = 0; $i < $howManyFolder; $i++) {
     
    		$files = scandir("rdv/100$i", SCANDIR_SORT_DESCENDING);
    		echo "Récupération tous les fichers du dossier 100" . $i . "<br>";
    		print_r($files ); echo "<br>";
    		echo "recupere le dernier fichier insérer dans le dossier a l'indice 0 <br>";
    		$newest_file = $files[0]; print_r($newest_file); echo "<br>";
     
    		//load the file .xlsx (mais le code bug ici...)
    		$objExcel=PHPExcel_IOFactory::load($newest_file);
     
    		//recupere les valeurs dans le fichier .xlsx file
    		$dossier = $objExcel->getActiveSheet()->getCell('A3')->getValue();
    		$facture = $objExcel->getActiveSheet()->getCell('B21')->getValue();
    		$date = $objExcel->getActiveSheet()->getCell('Q1')->getValue();
     
    		//appel la fonction pour insérer ces valeurs dans la base de données.
    		insertInto($dossier, $facture, $date );
    	}
    }		
    ?>
    Alors, comment puis-je corriger l'erreur fatale et comment lire le fichier pour continuer le code, je souhaite obtenir 3 valeurs dans le fichier .xlsx et les insérer dans ma base de données.

    Merci pour votre temps.

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Bonjour,

    Je peux me tromper mais je pense que dans votre variable $newest_file il n'y a que le nom du fichier.
    L'erreur qui ne montre que le nom du fichier sans la moindre forme d'arborescence me fait penser la même chose.

    Assurez vous que vous donniez le chemin absolu à la méthode qui va lire le fichier.

    A priori, le chemin complet devrait être quelque chose comme ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    dirname(__FILE__) . '/rdv/100' . $i . '/' . $newest_file;

    dirname(__FILE__) cette fonction retourne le chemin complet depuis le root jusqu'au fichier actuel (celui où le code est écrit, pas celui du fichier .xls). Doc : https://www.php.net/manual/fr/function.dirname
    Normalement, il peut maintenant être raccourci par simplement __DIR__ depuis PHP 5.3 mais ça fait des années que j'écris la première donc c'est un réflexe

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2019
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2019
    Messages : 35
    Par défaut
    merci tu as bien vue tout est régler j'avais du temps aujourd'hui

    j'ai du changer le format de la date parce que dans Excel quand on prend la valeur d'une date on récupère des nombre comme 41621 et j'ai convertis cela en quel que chose de plus normal

    je laisse mon code ici au besoin si cela peut aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    function func()
    {
     
    	//calcul the number of folder in folder rdv
    	$howManyFolder = count(glob('rdv/*', GLOB_ONLYDIR));
     
    	$newest_file = "";
    	//get the last file saved in one of the folders
    	for ($i = 0; $i < $howManyFolder; $i++) {
     
     
    		$files = scandir("rdv/100$i", SCANDIR_SORT_DESCENDING);
     
     
     
    		echo "Recover all files in the folder 100" . $i . "<br>";
    		print_r($files ); echo "<br>";
    		echo "get the last file inserted in the folder at index 0 <br>";
    		$newest_file = $files[0]; print_r($newest_file); echo "<br>";
     
    		//give the path of the file
    		$newest_file = dirname(__FILE__) . '/rdv/100' . $i . '/' . $newest_file;
     
    		//load the file .xlsx 
    		$objExcel=PHPExcel_IOFactory::load($newest_file);
     
    		//get all value insinde the .xlsx file
    		$dossier = $objExcel->getActiveSheet()->getCell('A3')->getValue();
    		$facture = $objExcel->getActiveSheet()->getCell('B21')->getValue();
    		$date = $objExcel->getActiveSheet()->getCell('Q1')->getValue(); //here is that value 41621 or 41631 ect... need convertion to date format
     
    		//Excel date to gmdate
    		$unix_date = ($date - 25569) * 86400;
    		$date = 25569 + ($unix_date / 86400);
    		$unix_date = ($date - 25569) * 86400;
    		$unix_date = gmdate("Y-m-d", $unix_date);
     
     
     
    		echo "<br>";
    		echo " numero dossier "; print_r($dossier);
    		echo " numero facture "; print_r($facture);
    		echo " date "; print_r($unix_date);
    		echo "<br>";
     
    		//call function to insert these values inside dataBase.
    		insertInto($dossier, $facture, $unix_date);
    	}
    	header('Location: index.php?message=Successfully...!');
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer valeur de plusieurs select
    Par fouinette dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/02/2011, 10h34
  2. Récupérer valeur de plusieurs cases à cocher
    Par jjouc dans le forum Langage
    Réponses: 1
    Dernier message: 11/07/2010, 03h53
  3. Réponses: 2
    Dernier message: 21/07/2009, 16h31
  4. Récupérer une valeur de plusieurs cellules
    Par alainpinpin dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/02/2009, 16h29
  5. Récupérer valeurs de plusieurs combobox
    Par NicoO_O dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 04/05/2007, 15h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo