Lire un fichier Microsoft Excel (.xls) avec PHP

Logo de la librairie PHPExcelCe tutoriel ce veut simplisme. On va juste voir comment lire un fichier Excel afin de le représenter au format HTML.

Pour cela on va utiliser la librairie PHPExcel de CodePlex.
Contrairement au tutoriel précédent, cette librairie est maintenue et ne pose pas de problème d’encodage.
La librairie est bien documentée et un grand nombre d’exemples sont fournis et elle est utilisée dans PhpMyAdmin.

require_once '.Classes/PHPExcel/IOFactory.php';

// Chargement du fichier Excel
$objPHPExcel = PHPExcel_IOFactory::load("unFichierExcel.xls");

/**
* récupération de la première feuille du fichier Excel
* @var PHPExcel_Worksheet $sheet
*/
$sheet = $objPHPExcel->getSheet(0);

echo '<table border="1">';

// On boucle sur les lignes
foreach($sheet->getRowIterator() as $row) {

   echo '<tr>';

   // On boucle sur les cellule de la ligne
   foreach ($row->getCellIterator() as $cell) {
      echo '<td>';
      print_r($cell->getValue());
      echo '</td>';
   }

   echo '</tr>';
}
echo '</table>';

Voila. C’est tout. Rien de compliqué.

Par contre si vous voulez aller plus loin, la librairie regorge de fonctionnalités pour la lecture et l’écriture de fichier. Et elle ne se contente pas du format xls elle prend aussi en charge le xlsx d’Excel 2007.

Tagués avec : , ,
Publié dans PHP
66 commentaires pour “Lire un fichier Microsoft Excel (.xls) avec PHP
  1. Pardaillec dit :

    Bonjour,
    Merci pour votre billet. Par contre, la variable $sheet n’est pas définie, à quoi correspond-elle ?
    Merci d’avance.

    • waldo2188 dit :

      Oups, un petit oubli de ma part.
      C’est corrigé.

      • Feliciano dit :

        Bonjour
        Merci à vous .
        Je souhaite savoir si existe une possibilité d’afficher à la fois le contenu de deux différents fichiers excel?
        J’ai un projet de fin d’étude et je suis confronté à ce problème .
        Je dois récupérer le contenu de deux différents fichiers .xls, les affichées dans dans le même interface HTML avec le php.
        je dois utiliser les valeurs venant des deux fichiers pour effectuer des calculs .
        J’ai besoins de votre aide .
        Merci à l’avance

        • Waldo dit :

          C’est assez simple, il suit d’instancier deux fois le lecteur :
          $objPHPExcel1 = PHPExcel_IOFactory::load(« unFichierExcel_1.xls »);
          $objPHPExcel2 = PHPExcel_IOFactory::load(« unFichierExcel_2.xls »);

          • foufa83 dit :

            Merci pour votre astuce, ça m’a un peu dépanné pour injecter des fichiers excel dans un script PHP censé convertir ces derniers en PDF.

  2. karim dit :

    Bonsoir,
    bein je ne sais comment te remercier! car je me suis taper la doc et je n’ai réussie à comprendre comment afficher toute les cellules d’une feuille.
    MErcie encore
    bonne soirée

  3. zinab dit :

    Bonjour;
    Merci pour le code, il fonctionne bien mais j’ai un petit souci je n’arrive pas à récuperer la valeur d’une cellule donnée
    Merci

  4. camille dit :

    Bonjour,
    Merci pour ce code.
    Je viens de résoudre un problème sérieux avec votre billet

  5. Gilles dit :

    Bonjour,
    J’utilise PHPExcel depuis peu. Je dois valider la structure de fichiers Excel déposés par les utilisateurs, et je dois notamment vérifier la présence de propriétés personnalisées (custom properties), mais ça ne fonctionne pas (j’ai toujours vide en retour) et de plusieurs zones de texte (shapes je crois en VBA), mais j’ai l’impression que ce n’est pas géré par cette bibliothèque.
    Pourrais-tu m’éclairer s’il te plaît ?
    Merci d’avance.

    • waldo2188 dit :

      Je ne suis pas allé aussi loin dans l’utilisation de cette librairie. Mieux vaut que tu regarde directement sur le site de l’éditeur.

  6. ruan01 dit :

    Bonjour;
    Merci une fois de plus pour le code, j’ai le même problème que « Zinab », j’aimerai recuperer les données depuis une colonne précise, ou de plusieurs cellules précises.
    Merci de vos reponses

  7. David dit :

    Bonjour !
    J ai un probleme avec ce listing, (je precise que je redebute le php apres un arret de plusieurs années)
    lors de l execution je me retrouve avec ce message :

    Fatal error: Class ‘�PHPExcel_IOFactory’ not found in C:Program Files (x86)EasyPHP-5.3.9wwwExcelToTable.php on line 4

    j ai d abord cru a un probleme d inclusion, puis j ai rajouté un echo idiot au debut de IOFactory.php, le message apparait alors bien avant l erreur fatal donc le fichier est bien inclus…

    Si quelqu un a une idée, je suis preneur.

    • Jean-Pierre Vidal dit :

      Bonjour,
      Je ne suis pas nouveau en PHP, mais je découvre cette semaine cette bibliothèque. Et je tombe sur le même problème « Class ‘ PHPExcel_IOFactory’ not found in … ».
      J’ai un peu galéré jusqu’à m’apercevoir que le message parlait de la classe ‘ PHPExcelIOFactory’ (avec une espace devant). J’ai examiné ce message avec un éditeur hexadécimal, l’espace correspond aux octets 0xC2 0xA0.
      Dans mon instruction qui était
      $objPHPExcel = PHPExcel_IOFactory::load(« ./test.xls »);
      j’ai supprimé les espaces avant et après le signe ‘=’
      $objPHPExcel=PHPExcel_IOFactory::load(« ./test.xls »);
      … plus de message d’erreur
      j’ai remis les espaces, toujours plus de message d’erreur.
      Je ne comprends pas ce qui a pu se passer, mais si cette « amulette » peut servir à quelqu’un, j’en serai ravi. (et je sais qu’il y en a, vu mes recherches…)
      Et un grand merci à mon-beulogue.

  8. olivier dit :

    Bonjour,
    Merci pour le code, ça m’a évité pas mal de recherches. S’il y a des cellules vides et qu’on veut les récupérer j’ai mis ça à la place du premier foreach :

    // On boucle sur les lignes
    foreach($sheet->getRowIterator() as $row) {
     $cellIterator = $row->getCellIterator();
     $cellIterator->setIterateOnlyExistingCells(false);
       echo '';
     
       // On boucle sur les cellule de la ligne
       foreach ($cellIterator as $cell) {
          echo '<pre>';
          print_r($cell->getValue());
          echo '</pre>';
       }
     
       echo '';
    }
    
    • spoon dit :

      Imaginons que j’ai un tableau de A à F, va t-il lire les cellules après de G à IV?
      Si oui comment récupérer le nombre de cellules non vides dans la premières ligne contenant les entêtes de colonnes de mon tableau?

      • waldo2188 dit :

        La librairie ne lie que les cellules non nulle.
        Donc si dans excel ton tableau s’arrête à C la librairie retournera nulle à la lecture de la cellule E2.

        • françois dit :

          Le tableau est défini de la dernière ligne et à la dernière colonne avec une valeur de cellule.
          C’est à dire que si j’ai une valeur en A1 et une valeur en F8 et avec le parametre setIterateOnlyExistingCells(false), tu vas faire de ma ligne à 1 à 8 et de la cellule A à F soit 6 (colonnes) * 8 (lignes) valeurs.

    • Bertrand dit :

      Ah yes, merci pour ton bout de code, j’avais un petit soucis sur les cellules vide, du coup cela me décaler les valeur…

  9. olivier dit :

    euh les balises dans les « echo » sont mal passées dans le commentaire précédent :)

    • lepotier dit :

      @Olivier: Je ne comprends pas ton post sur les « echo » mal passés, j’essayé ton script et j’ai une erreur:
      Fatal error: Call to undefined method PHPExcel_Worksheet_CellIterator::getCellIterator() in ……

      Une idée ?

      Merci,

      • lepotier dit :

        C’est bon, j’ai trouvé mon 1er foreach était

        foreach ($cellIterator->getCellIterator() as $cell))

        alors qu’il faut

        foreach ($cellIterator as $cell))

        Merci,

  10. ERIC dit :

    merci beaucoup pour le code.
    mais j’ai une petite préoccupation.
    je voudrai rechercher une partie de mot contenu dans une cellule
    comment le faire?

  11. yassin dit :

    Bonjour,
    Merci pour ce code.
    Je suis en train de traiter un problème sérieux avec votre billet.
    J’aimerai compter le nombres de lignes contenant des données, y a t-il un moyen de le faire?

    Merci d’avance.

  12. citron dit :

    Bonjour,
    Merci pour ce bout de code, mais j’ai un soucis quand j »essai ce code jai une erreur :
    Fatal error: Call to a member function getBlipType() on a non-object in Classes/PHPExcel/Reader/Excel5.php on line 995

    jai le bon chemin des classes et le bon fichier excel, je ne comprend pas, est que vous avez une idée de se qui pourrai clocher???

  13. axel dit :

    Bonjour, je souhaiterais pouvoir parcourir un fichier excel, afin de récupérer le contenu des cellules pour ensuite les insérer dans une base de donnée directement depuis une page PHP. est ce possible ?

  14. brahim dit :

    Bonjour,

    parfois j’ai une erreur de type:
    PHPExcel_Worksheet->getCell(‘2’) #2 {main} thrown in /htdocs/public/www/Classes_librairie_excel/PHPExcel/Cell.php on line 539

    Je me demande si possible de traiter cette exception afin de générer un message personalisé.

    Merci.

    • waldo2188 dit :

      Oui tu peux gérer ce genre de problème.
      Un try cath devrais suffire.

      try {
          PHPExcel_Worksheet->getCell('2');
      }catch(Exceltion $e){
          die($e->getMessage());
      }
      
  15. spoondudjima dit :

    Salut,

    Merci de ton aide.
    J’ai un souci d’encodage, les valeurs affichées change les accents en lettres avec des accents

    cdt

  16. dudjima dit :

    Salut,
    J’ai un souci avec le chargement d’un fichier. j’upload des fichiers Excel pour les traiter. J’arrive à ouvri tout les fichiers avec la ligne : $objPHPExcel = PHPExcel_IOFactory::load($fichier);
    sauf, un qui a pourtant le bon nom de fichier le bon chemin, mais il arrête l’exécution de la page.
    Si je fait un echo après il ne s’affiche pas.
    Une idée du probleme ? Il n’affiche aucune erreur,…

    • waldo2188 dit :

      Cherche dans le php.ini (fichier de config de php) pour qu’il t’affiche les erreurs.
      De tête :
      display_errors = On
      html_errors = On

  17. Antoine dit :

    Bonjour,
    Je travaille actuellement sur une application php et je dois récupérer les informations sur un fichier excel afin d’alimenter ma base de donnée. Le code ci-dessous marche bien à une condition qu’il ne faut pas y avoir d’accent. En effet si la cellule possède un accent, le getValue est nul, il ne renvoie absolument rien juste à cause d’un accent dans la cellule. J’ai déjà essayer iconv, utf8_encode mais sans succès. Avez vous des idées pour remédier à mon problème ?
    Je vous laisse mon code ci-dessous

    require_once("lib/Classes/PHPExcel/IOFactory.php");
    ini_set('max_execution_time',3600);

    //Chargement du fichier Excel
    $objPHPExcel = PHPExcel_IOFactory::load($_FILES['excel']['tmp_name']);

    //Récupération de la première feuille du fichier Excel
    $sheet = $objPHPExcel->getSheet(0);

    //Variable n° ligne
    $i=0;

    // On boucle sur les lignes
    foreach($sheet->getRowIterator() as $row) {
    if($i>12){

    // On boucle sur les cellules de la ligne
    $tab = array();
    foreach ($row->getCellIterator() as $cell) {
    array_push($tab,$cell->getValue());
    }
    $text = $tab[0];
    }

  18. Le-sensei dit :

    J’aurais voulu savoir, comment puis je récuperer la valeur dans la cellule B5 par exemple ?
    Merci !

  19. Le-sensei dit :

    Peut on lire un fichier xlsm ? j’ai ceci quand j’essaye :
    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2097152 bytes) in C:wampwwwintranetPHPExcel_1.7.9_docClassesPHPExcelCachedObjectStorageMemory.php on line 55

  20. wazimer dit :

    J’ai un fichier Excel que j’ouvre à l’aide de la méthode ci-dessus.
    J’aimerais enregistrer une copie de ce fichier sur le serveur une fois les modifs effectuées.

    Comment faire ?
    Merci d’avance.

  21. Roubi dit :

    Super post MErci.

    Juste une interrogation : Comment faire pour prendre en compte une cellule vide et stocker par exemple dans la variable $cell une chaine vide ?

    Actuellement, si la cellule est vide il n’en tiens pas compte … J’aimerai qu’il en tienne compte :)

    Merci

  22. David dit :

    Bonjour, En faite voila j’ai un soucis,quand jexecute le fichier, avec une class, il me met class « COM » not found, dans lexemple de COM

    Cordialement

  23. Oli dit :

    Bonjour,

    Comment fait on pour inserer le contenu des cellules dans une requette SQL ?
    Je ne comprends pas, débutant en PHP, j’ai lu la doc avec les exemples, mais je ne parviens pas au résultat souhaité.

    Ci dessous le code :

    
    require_once 'Classes/PHPExcel/IOFactory.php'; // Chargement du fichier Excel
    $objPHPExcel = PHPExcel_IOFactory::load("./upload/PMR.xls"); 
    /*
    $objPHPExcel = PHPExcel_IOFactory::load("./upload/PMR.xls"); 
    
    *
    * récupération de la première feuille du fichier Excel* @var PHPExcel_Worksheet $sheet
    */
    $sheet = $objPHPExcel->getSheet(0); 
    echo '<table border="1">'; 
    // On boucle sur les lignes
    foreach($sheet->getRowIterator(2) as $row) {    
    	echo '<tr>';    
    	// On boucle sur les cellule de la ligne   
    		foreach ($row->getCellIterator() as $cell) {      
    			echo '<td>';   
    			print_r($cell->getValue()); 
    			$sql = "INSERT into insert_pmr(colonn1,colonn2,colonn3,colonn4) values ('$cell[0]->getValue()','$cell[1]->getValue()','$cell[2]->getValue()','$cell[3]->getValue()')"; 
    mysql_query($sql) or die('Erreur SQL !<br/>'.$sql.'<br/>'.mysql_error());
    
    
    
    			
    			echo '</td>';   
    		}    
    	echo '</tr>';
    }
    
    echo '</table>';
    
    

    Bien entendu, l’affichage fonctionne mais pas l’insertion.
    Sachant que « $cell[0]->getValue() » ne renvoie pas la valeur d’une cellule
    Merci de votre aide.

    • Waldo dit :

      Salut, essaye avec quelque chose comme cela :

      $sql = sprintf("INSERT into insert_pmr(colonn1,colonn2,colonn3,colonn4) values ('%s','%s','%s','%s')",
      $cell[0]->getValue(), $cell[1]->getValue(), $cell[2]->getValue(), $cell[3]->getValue());

  24. Jijidev dit :

    C’est très génial pour moi cette librairie;
    mais on a un problème de getters sur $cell->getValue();
    à l’origine dans le cellule, j’ai « Home@FEEK »
    mais quand on le récupère, on a le bug suivant
    PHPExcel_RichText Object ( [_richTextElements:PHPExcel_RichText:private] => Array ( [0] => PHPExcel_RichText_Run Object ( [_font:PHPExcel_RichText_Run:private] => PHPExcel_Style_Font Object ( [_name:protected] => Calibri [_size:protected] => 11 [_bold:protected] => [_italic:protected] => [_superScript:protected] => [_subScript:protected] => [_underline:protected] => single [_strikethrough:protected] => [_color:protected] => PHPExcel_Style_Color Object ( [_argb:protected] => FFFF0000 [_parentPropertyName:protected] => [_isSupervisor:protected] => [_parent:protected] => ) [_isSupervisor:protected] => [_parent:protected] => ) [_text:PHPExcel_RichText_TextElement:private] => Home@FEEK ) ) )

  25. Stéphane dit :

    Très pratique, je dois convertir de multiples feuilles *.xls en différents tableau à afficher dans des pages html ou php. cependant, je récupère uniquement les formules et non les valeurs. Qu’en pensez – vous ?

  26. Stéphane dit :

    En cherchant un peu, j’ai trouvé la solution. Pour ne pas afficher les formules, mais les valeurs de celle ci, il ne faut pas utiliser

    print_r($cell->getValue());

    mais

    print_r($cell->getCalculatedValue());

  27. Greg dit :

    Bonjour,
    tout d’abord merci pour votre tuto.
    Ca m’a vraiment beaucoup aidé.

    Je n’arrive cependant pas, malgre ma lecture de la doc officielle, à prendre des cellules differentes dans des feuilles (pas fichiers) differentes.
    Sur une feuille j’ai reussi sans souci mais je bloque sur plusieurs.

    Si vous avez une petite idee ou piste ca serait super sympa.

    Merci

    • Waldo dit :

      Pour accéder aux cellules des autres feuilles il faut changer de feuille (oui dis comme ça, ça parait con..)
      $sheet = $objPHPExcel->getSheet(ICI LE NUMÉRO DE TA FEUILLE);

      Je crois que la librairie mais aussi à disposition une méthode du style getSheetByName(«  ») qui te permet de pointer sur tes feuilles par leurs nom.

      En espérant que ce bout de code te vienne en aide.

  28. Nicolas dit :

    Bonjour,

    Tout d’abord merci de ton travail, il est toujours aussi agréable de trouver des gens désireux de faire partager leurs connaissances !

    J’essaie actuellement d’afficher un document .xlsx (seulement en lecture) sur une page html classique comprenant du php et je ne comprends pas bien le fonctionnement de la librairie PHPExcel.

    J’ai utilisé le code de ton article, lié à mon fichier excel, et j’obtiens un tableau assez moche représentant les valeurs de mes cases mais sans les convertir. Cad que j’ai des cases ou j’ai : =C6*D6 ou des SUMM(E4:E9), bref les fonctions quoi…
    J’ai consulté pas mal de sites et consulté les docs de la librairie mais je nage un peu…

    Mon but est seulement que la personne consultant la page puisse naviguer sur le fichier excel, entre les différentes feuilles.

    Pourrais-tu me préciser la manière dont je dois procéder?

    Merci d’avance :)

  29. SBD dit :

    bonjour , merci bcp pour cet exemple
    mais comment je peux faire pour récupérer quelque colonnes que je précise ?
    merci

  30. laetitia dit :

    bonjour merci pour le code mais il ne marche pas lorsque je l’execute pourtant c’est bien fichier excel que je passe en paramètre please help me

  31. laetitia dit :

    je precise que c’est PHPExcel 1.8.0 que j’utilise et j’ai wampserver version 2.0 et windows 10

  32. Jessica dit :

    Bonjour à tous
    Je suis tombée sur ce post mais je me demande si je suis bien au bon endroit !
    Voila, pour mon cas je travaille sur mysql workbench, et j’ai une BDD existante avec 15 tables non vide, je veux importer un fichier Excel(c’est fait j’ai créé une table ayant le même nom que mon fichier en .csv et j’ai importé tout le contenu à l’aide d’un outil sur MySql workbench qui le fait), cependant le problème maintenant c’est que chaque colonne de ma feuille Excel va aller dans un champ d’une table donnée de ma Base.
    J’ai trouvé ce code que je n’arrive pas à bien saisir:

    ————–
    SET AUTOCOMMIT = 0
    ————–

    ————–
    START TRANSACTION
    ————–

    ————–
    DROP DATABASE IF EXISTS `base`
    ————–

    ————–
    CREATE DATABASE IF NOT EXISTS `base`
    DEFAULT CHARACTER SET `latin1`
    DEFAULT COLLATE `latin1_general_ci`
    ————–

    ————–
    DROP TABLE IF EXISTS Cities
    ————–

    ————–
    CREATE TABLE Cities (
    Country CHAR(2),
    City CHAR(22),
    AccentCity CHAR(3),
    Region CHAR(2),
    Population INT UNSIGNED NULL DEFAULT NULL,
    Latitude FLOAT,
    Longitude FLOAT,
    Date DATETIME
    ) ENGINE=InnoDB
    DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
    ROW_FORMAT=COMPRESSED
    ————–

    ————–
    TRUNCATE Cities
    ————–

    ————–
    set unique_checks = 0
    ————–

    ————–
    set foreign_key_checks = 0
    ————–

    ————–
    set sql_log_bin = 0
    ————–

    ————–
    alter table Cities DISABLE KEYS
    ————–

    ————–
    commit
    ————–

    ————–
    LOAD DATA LOCAL INFILE ‘fichier.txt’
    INTO TABLE `Cities`
    CHARACTER SET latin1
    FIELDS TERMINATED BY ‘,’
    ENCLOSED BY ‘ »‘
    ESCAPED BY ‘\\’ LINES
    TERMINATED BY ‘\r\n’
    IGNORE 0 LINES
    (@F1, @F2, @F3, @F4, Population, Latitude, Longitude, @F8)
    set Country = trim(@F1),
    City = trim(@F2),
    AccentCity = trim(@F3),
    Region = trim(@F4),
    Date = outils.chgdate(@F8)
    ————–

    ————–
    commit
    ————–

    ————–
    alter table Cities ENABLE KEYS
    ————–

    ————–
    set unique_checks = 1
    ————–

    ————–
    set foreign_key_checks = 1
    ————–

    ————–
    set sql_log_bin = 1
    ————–

    ————–
    commit
    ————–

    ————–
    select concat(‘>’, Country,  », City,  », AccentCity, », Region,  », Population, », Latitude,  », Longitude,  », date, ‘frdijon bourgogne—bo5000002001502015-12-10 15:20:00frparis ile de france—il2000000100502015-06-15 07:15:00frnice paca—pa100000250752015-07-25 19:58:00frmarseille paca—pa3000750152015-03-12 19:58:00< |
    +———+———————–+————+——–+————+———-+———–+———————–+
    ————–
    COMMIT
    ————–

    ————–
    SET AUTOCOMMIT = 0
    ————–

    Si vous avez compris merci de m'éclairer et si vous avez d'autres pistes merci de me renseigner!

  33. Dave dit :

    Bonjour,
    J’ai un petit soucis, voici mon message d’erreur:
    Warning: DOMDocument::loadHTMLFile() expects exactly 1 parameter, 2 given in C:\wamp\www\php\PHPExcel\Classes\PHPExcel\Reader\HTML.php on line 427

    A cette ligne 427 du fichier « HTML.php » voici ce qu’il y a :

    $loaded = $dom->loadHTMLFile($pFilename, PHPExcel_Settings::getLibXmlLoaderOptions());

    L’erreur viens peut être de mon code? => Le voici:

    ?php
    require_once (‘C:\wamp\www\php\PHPExcel\Classes\PHPExcel\IOFactory.php’);

    // Chargement du fichier Excel
    $objPHPExcel=PHPExcel_IOFactory::load(« C:\User\U496452\Intervention\Intervention.xls »);

    /**
    * récupération de la première feuille du fichier Excel
    * @var PHPExcel_Worksheet $sheet
    */
    $sheet = $objPHPExcel->getSheet(0);

    echo  »;

    // On boucle sur les lignes
    foreach($sheet->getRowIterator() as $row) {

    echo  »;

    // On boucle sur les cellule de la ligne
    foreach ($row->getCellIterator() as $cell) {
    echo  »;
    print_r($cell->getValue());
    echo  »;
    }

    echo  »;
    }
    echo  »;
    ?>

  34. Sebastien dit :

    Hello

    Jai un probleme avec des cellule vide , qui du coup decalle les colonne a certaines lignes

    J’ai appliqué la solution proposé mais cela ne marche pas

    voici mon code

    $sheet = $objPHPExcel->getSheet(0);

    echo  »;

    // On boucle sur les lignes
    foreach($sheet->getRowIterator() as $row) {
    $cellIterator = $row->getCellIterator();
    $cellIterator->setIterateOnlyExistingCells(false);
    echo  »;

    // On boucle sur les cellule de la ligne
    foreach ($row->getCellIterator() as $cell) {

    echo  »;

    print_r($cell->getValue());

    echo  »;

    }
    echo  »;

    }
    echo  »;

    est ce que qqun aurais une piste SVP ??

    Merci

  35. Opango Bettega dit :

    Bonjour,
    Vous faites bien de partager vos connaissances avec ceux qui souhaitent apprendre. J’ai utilisé cette librairie pour lire un fichier xlsx mais je n’arrive même pas à inclure le fichier de la librairie. Voilà l’erreur :
    Warning: require_once(/usr/local/lib/PHPExcel_1.8.0/PHPExcel/Classes/PHPExcel/Reader/Excel2007.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/html/intranet/test/lecture/Test_lecture_fichier_excel_PHP.php on line 8
    Fatal error: require_once() [function.require]: Failed opening required ‘/usr/local/lib/PHPExcel_1.8.0/PHPExcel/Classes/PHPExcel/Reader/Excel2007.php’ (include_path=’.:/usr/share/pear’) in /var/www/html/intranet/test/lecture/Test_lecture_fichier_excel_PHP.php on line 8
    voilà une partie du code utilisé :
    $lib_path= »/usr/local/lib/PHPExcel_1.8.0″;
    require_once(« $lib_path/PHPExcel/Classes/PHPExcel/Reader/Excel2007.php »);(==> ligne 8)

    $lien_vers_mon_document_excel=’Test_lecture_fichier.xlsx’;
    $array_data = array();
    $XLSXDocument = new PHPExcel_Reader_Excel2007();
    $Excel = $XLSXDocument->load($lien_vers_mon_document_excel);

    Pouvez-vous m’aider à inclure cette librairie ? j’ai un serveur apache et le paramètre include_path n’est pas défini dans mon fichier php.ini
    Je vous remercie d’avance

  36. Opango dit :

    Bonjour,
    Pour utiliser cette bibliothèque, y a t-il des modifications à apporter dans les fichiers à utiliser ?
    En vous remerciant

  37. med essabri dit :

    bonjour
    merci pour votre code
    mais après la lecture même des commentaire je reste encore bloqué avec le problème des cellules vides, ça décale les les valeurs non nulles vers les colonnes dont les valeurs sont nulles
    donc chaque ligne se réduit en fonction des valeurs monquantes
    veillez m’aider s’il vous plait
    merci d’avance

  38. Achraf dit :

    Bonjour,
    tous d’abord merci pour ton billet, ça m’a vraiment été d’une grande aide, je decouvre php et je vient de trouver la lib PHPExcel, je veux juste vous demander deux trucs :
    1 – dans certaines cellules, ça renvoi la formule et pas la valeur, comment corriger ça ?
    2 – Supposons que j’ai une table excel de 3 ligne et 6 colonnes, comment récupérer chaque cellule dans une variable, (par exemple récupérer la premiere ligne dans 6 variables, les enregistrer dans une BD, et faire une loop pour que ça se repete selon le nombre des lignes)

    Grand merci d’avance.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*