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

Langage PHP Discussion :

Lecture d'un fichier excel de plus 200 lignes avec PHPExcel


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    étudiant
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 10
    Points
    10
    Par défaut Lecture d'un fichier excel de plus 200 lignes avec PHPExcel
    Je viens vers vous pour solliciter de l'aide.
    Actuellement, j'importes un fichier excel contenant maximum 15 lignes avec une seule feuille de tableur. Cette importation marche.
    Toutefois, j'ai constaté que avec les fichiers qui seront importés dans mon application contiendront plus de 200 lignes ce nombre est évolutif.
    Aussi, avec la méthode de lecture avec PHPExcel que j'ai adopté, mon code php n'arrive pas à obtenir le nombre de lignes car le nombre de colonnes est fixe.
    Veuillez trouvez ci - dessous le code de traitement pour les détails.
    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
    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
    85
     
    if (isset($_SESSION['user'])) {
            $compt = $_SESSION['user'];
            $idUsersconnectes = $compt['idUsers'];
            $cpt = "SELECT idUsers, nomUsers, prenomUsers, login, idGroupe FROM VUTILISATEUR WHERE supUsers='1' AND idUsers='$idUsersconnectes'";
            $results = $idcom->query($cpt);
            $row = $results->fetch(PDO::FETCH_ASSOC);
            $idUsers = $row['idUsers'];
            $nomUsers = strtoupper($row['nomUsers']);
            $prenomUsers = $row['prenomUsers'];
            $login = $row['login'];
            $user = $nomUsers . " " . $prenomUsers;
            setlocale(LC_TIME, 'fra_fra');
            $dateSaving = utf8_decode(utf8_encode(gmstrftime('%A %d %B %Y, %H:%M')));
            $target_galerie = "../ressources/upload/";
            $target_file = $target_galerie . basename($_FILES["fichier"]["name"]);
            if (!move_uploaded_file($_FILES["fichier"]["tmp_name"], $target_file)) {
                header("location: ../views/accueil.php?");
            }
            if ($target_file) {
                $fichiers = $_FILES["fichier"]["name"];
                if (file_exists($target_file)) {
                    if ($_FILES["fichier"]["size"] > 0) {
                        include("../ressources/PHPExcel/Classes/PHPExcel/IOFactory.php");
                        $objReader = PHPExcel_IOFactory::createReader('Excel2007');
                        $objReader->setReadDataOnly(true);
                        $objPHPExcel = $objReader->load($target_file);
                        $objWorksheet = $objPHPExcel->getActiveSheet();
                        $highestRow = $objWorksheet->getHighestRow(); // e.g. 10 
                        for ($row = 5; $row <= $highestRow; $row++) {
                            $name0 = $objWorksheet->getCellByColumnAndRow(0, $row)->getValue();
                            $name1 = utf8_decode($objWorksheet->getCellByColumnAndRow(1, $row)->getValue());
                            $name2 = utf8_decode(PHPExcel_Style_NumberFormat::toFormattedString($objWorksheet->getCellByColumnAndRow(2, $row)->getValue(), 'YYYY-MM-DD'));
                            $name3 = utf8_decode($objWorksheet->getCellByColumnAndRow(3, $row)->getValue());
                            $name4 = utf8_decode($objWorksheet->getCellByColumnAndRow(4, $row)->getValue());
                            $name5 = utf8_decode($objWorksheet->getCellByColumnAndRow(5, $row)->getValue());
                            $name6 = utf8_decode($objWorksheet->getCellByColumnAndRow(6, $row)->getValue());
                            $name7 = utf8_decode($objWorksheet->getCellByColumnAndRow(7, $row)->getValue());
                            $name8 = utf8_decode($objWorksheet->getCellByColumnAndRow(8, $row)->getValue());
                            $name9 = utf8_decode(PHPExcel_Style_NumberFormat::toFormattedString($objWorksheet->getCellByColumnAndRow(9, $row)->getValue(), 'YYYY-MM-DD'));
                            $name10 = utf8_decode($objWorksheet->getCellByColumnAndRow(10, $row)->getValue());
                            $name11 = utf8_decode($objWorksheet->getCellByColumnAndRow(11, $row)->getValue());
                            $name12 = utf8_decode($objWorksheet->getCellByColumnAndRow(12, $row)->getValue());
                            $name13 = utf8_decode($objWorksheet->getCellByColumnAndRow(13, $row)->getValue());
                            $name14 = utf8_decode($objWorksheet->getCellByColumnAndRow(14, $row)->getValue());
                            $name15 = utf8_decode($objWorksheet->getCellByColumnAndRow(15, $row)->getValue());
                            $name16 = utf8_decode(PHPExcel_Style_NumberFormat::toFormattedString($objWorksheet->getCellByColumnAndRow(16, $row)->getValue(), 'YYYY-MM-DD'));
                            $name17 = utf8_decode(PHPExcel_Style_NumberFormat::toFormattedString($objWorksheet->getCellByColumnAndRow(17, $row)->getValue(), 'YYYY-MM-DD'));
                            $name18 = utf8_decode(PHPExcel_Style_NumberFormat::toFormattedString($objWorksheet->getCellByColumnAndRow(18, $row)->getValue(), 'YYYY-MM-DD'));
                            $name19 = utf8_decode(PHPExcel_Style_NumberFormat::toFormattedString($objWorksheet->getCellByColumnAndRow(19, $row)->getValue(), 'YYYY-MM-DD'));
                            $name20 = utf8_decode(strtoupper($objWorksheet->getCellByColumnAndRow(20, $row)->getValue()));
                            if ($name20 == "DEPOT1") {
                                $name21 = 2440003;
                            } elseif ($name20 == "DEPOT2") {
                                $name21 = 2440005;
                            } elseif ($name20 == "DEPOT3") {
                                $name21 = 2440008;
                            } elseif ($name20 == "DEPOT4") {
                                $name21 = 2440001;
                            }
                            $query = "INSERT INTO test (id, name1, name2, name3, name4, name5, name6, name7, 
                                          name8, name9, name10, name11, name12,name14, name15, name16, name17, name18, name19,
                                          name20, name21, volumeDeposeAuCompteur, idRespEnreg, dateRespEnreg, idRespDernierEnreg,
                                          dateRespDernierEnreg, sup)
                                          VALUES(NULL, '$name1', '$name2', '$name3', '$name4', '$name5', '$name6', '$name7', '$name8', '$name9', '$name10',
                                          '$name11', '$name12','$name14','$name15','$name16','$name17','$name18','$name19','$name20','$name21','NULL','$idUsers',
                                          '$dateSaving',NULL,NULL,'1')";
                            $result = $idcom->exec($query);
                        }
     
                        if ($result != 0) {
                            // Tout se passe bien,
                            header("location: ../views/test.php?op=2");
                        } else {
                            header("location: ../views/test.php?err=2");
                        }
                    } else {
                        header("location: ../views/test.php?err=1");
                    }
                } else {
    // le fichier n'existe pas
                    header("location: ../views/test.php?err=3");
                }
            }
        }

  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
    n'arrive pas à obtenir le nombre de lignes car le nombre de colonnes est fixe
    Je ne vois pas le rapport entre les lignes et les colonnes.
    Peux-tu clarifier ?

    Qu'est ce que tu obtiens avec getHighestRow ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Homme Profil pro
    étudiant
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Je ne pense pas qu'il y a un lien. Mais c'est le problème que j'ai voulu exprimer.
    L'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $highestRow = $objWorksheet->getHighestRow();
    me donne à l'aide du la valeur .
    J'espères que mon explication t'a éclairé dans mon problème.

  4. #4
    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
    Il y a bien une seule feuille aussi dans ton fichier de 200 lignes ?

    Tu peux nous fournir un fichier qui permette de reproduire le problème ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Homme Profil pro
    étudiant
    Inscrit en
    Février 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2014
    Messages : 8
    Points : 10
    Points
    10
    Par défaut Il y a bien une seule feuille aussi dans ton fichier de 200 lignes ? Tu peux nous fournir un fichier qui perm
    Le fichier a importé contient à ce jour 32 feuilles. et c'est la dernière feuille (feuille activée) qui doit être chargé au fur et mesure jusqu'à ce que toutes les colonnes soient remplies.
    Par ailleurs, je n'arrives pas à joindre le fichier.
    Cordialement.

  6. #6
    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
    Comme premier debugage je verifierais que la feuille active pour PHPExcel est bien celle que tu veux.
    Pour tester, il suffit de demander la valeur d'une cellule de cette feuille.
    Le cas échéant, il faudra activer manuellement la bonne feuille.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [VB.NET] Accélerer la lecture d'un fichier excel
    Par Franck2mars dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/11/2007, 11h35
  2. Réponses: 2
    Dernier message: 07/09/2006, 12h41
  3. Lecture d'un fichier Excel uniquement sur un seul poste
    Par loutsky dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/05/2006, 08h09
  4. [VB6] Problème de lecture d'un fichier excel
    Par Requin15 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 23/03/2006, 17h10
  5. macros word et lecture dans un fichier excel
    Par antrax2013 dans le forum Windows
    Réponses: 2
    Dernier message: 01/10/2005, 19h05

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