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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Forum] Lecture fichier Excel


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut [Forum] Lecture fichier Excel
    Bonjour,
    Je fais appel à la communauté car j'ai un problème sur lequel je sèche depuis 2 soirées.
    Si par hasard quelqu'un l'a déjà rencontré et résolu...

    Description :
    le même script ci-dessous fonctionne bien en W7 et plante en Linux sur la ligne : $objPHPExcel = $objReader->load($file);
    Je suis aussi passé par IOFactory, j'ai regardé les paths, les chemins, les droits rwx de tous les fichiers de PHPExcel (y comrpis récursif)
    et rien n'y fait.
    L'instruction $objReader = new PHPExcel_Reader_Excel2007(); est bien exécuté, et puis plus rien => je sors du script.
    (le message Traitement terminé n'apparait pas)

    D'avance merci

    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
    // Ajout de la classe PHP Excel
    require_once('PHPExcel.php');	
     
            $chemincourant = getcwd();
        echo $chemincourant." <br />\n";
        ob_flush();
        flush();	
    	$emplacementFinal = "ArchivesGLS/";
    	$extensionexcel = ".xlsx";
    	$extensioncsv = ".csv";
    	$dir = opendir($chemincourant);
     
        while($file = readdir($dir)) {					// on sauvegarde les fichiers CSV présents
    		if (stripos ( $file , $extensioncsv)) {
    			copy($file , $emplacementFinal.$file);
    			unlink($file);
    		}
    	}
     
     
    	closedir($dir);							// on ferme la référence à la liste de fichier
     
    	$dir1 = opendir($chemincourant);			        // on relit les fichiers du répertoire
     
    	while($file = readdir($dir1)) {			
    		if (stripos ( $file , $extensionexcel )) {		// on va récupérer le fichier Excel du répertoire
     
     
    	    	        $objReader = new PHPExcel_Reader_Excel2007();
    			$objPHPExcel = $objReader->load($file);             /on le lit
     
     			$today = date("Y-m-d H-i");
     
    			$objPHPExcel = new PHPExcel() ;                      / et on le sauvegarde en CSV
    			$objWriter = new PHPExcel_Writer_CSV($objPHPExcel);
    			$objWriter->setSheetIndex(0);
    			$objWriter->setDelimiter(';');
    			$objWriter->setEnclosure('');
    			$objWriter->setUseBOM(True);
    			$NomFichierCSV = 'GLS'.$today.'.csv';
    			$objWriter->save($NomFichierCSV);
     
    			unlink($file);
    		}
    	}
    	closedir($dir1);
        echo "Traitement terminé <br />\n";
        ob_flush();
        flush();

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne comprends pas trop ce que tu fais dans ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $objPHPExcel = $objReader->load($file);
    $today = date("Y-m-d H-i");
    $objPHPExcel = new PHPExcel();
    Sinon tu as essayé de simplifier ton code pour circonscrire le problème ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    J'ai simplifié le code. Je veux juste ouvrir un fichier Excel qu'on me transfère sur un serveur et le convertir au format CSV : avec séparateur de champ ;
    et sauvegarder ce fichier sous un nom en y intégrant la date et l'heure d'exécution du script.
    Et j'ai le plantage ou plutôt l'arrêt du script sur $objPHPExcel = $objReader->load($file);

    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
    // Ajout de la classe PHP Excel
    	require_once('PHPExcel.php');	
     
     
    	$chemincourant = getcwd();
    	$extensionexcel = ".xlsx";
    	$extensioncsv = ".csv";
     
    	$dir1 = opendir($chemincourant);			// on lit les fichiers du répertoire
     
    	while($file = readdir($dir1)) {			
    		if (stripos ( $file , $extensionexcel )) {		// on va récupérer le fichier Excel du répertoire
     
     
    	    	        $objReader = new PHPExcel_Reader_Excel2007();
    			$objPHPExcel = $objReader->load($file);
     
     			$today = date("Y-m-d H-i");
     
    			$objWriter = new PHPExcel_Writer_CSV($objPHPExcel);
    			$objWriter->setSheetIndex(0);
    			$objWriter->setDelimiter(';');
    			$objWriter->setEnclosure('');
    			$objWriter->setUseBOM(True);
    			$NomFichierCSV = 'GLS'.$today.'.csv';
    			$objWriter->save($NomFichierCSV);
     
    			unlink($file);
    		}
    	}
    	closedir($dir1);

  4. #4
    Membre éclairé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Septembre 2012
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2012
    Messages : 416
    Points : 747
    Points
    747
    Par défaut
    Bonjour,

    ça ressemble à un problème de droit d'accès au fichier Excel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    error_reporting(E_ALL);
    ini_set("display_errors", 1);
    en début de script t'affichera les probables erreurs.

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    OK je regarde et dis ce que je constate

  6. #6
    Candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Toujours pareil.

    Aucune erreur ne sort.

    Les droits du fichiers excel sur le site sont corrects (755)

    Il y a un moyen de voir les éventuels droits associés à l'objet créé par PHPExcel_Reader_Excel2007() ? (si c'est pas déconnant...)

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Un objet PHP n'a pas de droits. Le seul droit qui s'applique a PHP c'est l'utilisateur qui fait tourner le serveur web (ou l'executable PHP).
    Est-ce que tu as pu isoler le code qui pose problème ? C'est à dire sans tes boucles, tes flush etc.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonsoir et merci à vous de vous intéresser à ce sujet.

    J'ai suivi le dernier conseil, j'ai retiré toutes les boucles,

    J'ai mis le nom du fichier en dur dans le load.

    Et toujours le même comportement.
    ==> pas d'erreur! et le load ne marche pas (j'ai mis des traces "echo" après chaque ligne et c'est bien sur le load que ça plante : pas avant)

    Pour info, j'ai shunté la phase de "création PHPExcel_Load... et de load",
    j'ai fait un artifice pour la phase "new PHPExcel_Writer_CSV" et la suite ==> ça fonctionne bien (comme sous windows).

    Bref, j''ai beau essayer de comprendre... c'est mystérieux.

    Je n'ai vraiment aucune piste.

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Donc un code avec seulement ça ne fonctionne pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    require_once('PHPExcel.php');	
     
            $objReader = new PHPExcel_Reader_Excel2007();
    	$objPHPExcel = $objReader->load($file);
    echo 'fini';
    Tu n'as pas le echo de fin ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonjour et merci à tous les participants à ce post

    Pour répondre au dernier intervenant :

    Affirmatif.

    J'ai fait un ini_set display_errors

    J'ai mis un écho après chaque ligne (il n'y en a plus que 5)
    et à l'exécution le script "s'envole(?)" sur $objPHPExcel = $objReader->load...
    (l' écho de la ligne suivante n'est pas exécuté)

    Et aucun message d'erreur. J'ai jamais vu ça.

    Bon, ben je reste sec...

Discussions similaires

  1. Erreur de lecture fichier Excel
    Par fpascal dans le forum C++Builder
    Réponses: 13
    Dernier message: 25/02/2008, 16h54
  2. probleme lecture fichier excel
    Par snetechen dans le forum Documents
    Réponses: 1
    Dernier message: 04/07/2007, 08h41
  3. [Excel] Lecture fichiers Excel sans Excel
    Par neometaller dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/04/2007, 09h32
  4. Lecture fichier Excel
    Par marie20 dans le forum C++Builder
    Réponses: 4
    Dernier message: 27/03/2007, 15h02
  5. [VB.net] Lecture fichier excel, cellule fusionnée
    Par UNi[FR] dans le forum Windows Forms
    Réponses: 1
    Dernier message: 16/08/2006, 13h12

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