PHP lire et traiter un fichier excel

Php est langage de programmation puissant qui permet une interaction avec un nombre important de type de fichier, notamment les fichiers provenant d’excel. Nous allons voir comment récupérer le contenu d’un fichier excel (.xls) et l’afficher dans une page HTML.Php est un langage devenu très commun et majoritairement utilisé sur internet. Il est un outil puissant avec lequel les interactions avec les systèmes de fichier sont importantes. Il est facile de lire, créer, modifier différents fichiers notamment les fichiers provenants d’Excel.

Nous allons voir ici les classeur Excel en .xls. Je n’ai malheureusement pas réussi à le faire pour les fichier Excel 2007.

Librairie nécessaire

PHP est un langage répandu et très utilisé qui dispose d’une communauté importante mettant à disposition un grand nombre d’outil. Il y a une librairie qui va permettre d’intéragir facilement avec les fichiers Excel.

Bien qu’il est indiqué qu’il est facile de le faire aussi pour les fichiers créés avec le format .xlsx, même en suivant la documentation, je n’ai pas réussi à le réaliser, vous pouvez donc modifier votre fichier en .xlsx et le mettre en .xls.

La bibliothèque est disponible sur le git de : PHPOffice. Vous pouvez procéder à l’installation avec la commande GIT suivante : git clone https://github.com/PHPOffice/PHPExcel.git

Placer le dossier PHPExcel à l’endroit où vous le désirez.

Fichier d’exemple

Pour suivre ce tuto, je vous invite à télécharger ce fichier.

Code PHP pour afficher le contenu du classeur

Dans la page que vous souhaitez, copiez ce code (modifier les chemin en fonction de vos dossiers) :

<?php
  require_once("CHEMIN/VERS/PHPExcel/Classes/PHPExcel/IOFactory.php");
  $document_excel = PHPExcel_IOFactory::load("CHEMIN/VERS/FICHIER/exemple.xls");
  $feuille = $document_excel->getSheet(0);
  $compte = 0;
  echo "<table>";
  foreach($feuille->getRowIterator() as $ligne){
    echo "<tr>";
    foreach($ligne->getCellIterator() as $cellule){
      if($compte == 0){
        echo "<th>";
      }else{
        echo "<td>";
      }
      echo $cellule->getValue();
      if($compte == 0){
        echo "</th>";
      }else{
        echo "</td>";
      }
    }
    echo "</tr>";
    $compte += 1;
  }
  echo "</table>";
?>

A l’affichage de votre page, vous obtiendrez donc un tableau pour lequel chaque correspondra à une ligne du classeur et chaque colonne à une cellule.

Vous allez pouvoir récupérer les données du classeur pour les enregistrer dans une base de données facilement, je vous invite à aller lire l’article sur la connexion à mysql., dans les grandes lignes :

//se connecter à la base
//charger le fichier .xls
foreach($feuille->getRowIterator() as $ligne){
     foreach($ligne->getCellIterator() as $cellule){
          //récupération des valeurs de la cellule dans un array
     }
     //requête d'insertion dans la base de données des valeurs de toutes les cellules de la ligne
}

Exemple

Vous pouvez voir un exemple d’affichage sur le site de tuto.

Conclusion

Nous avons vu qu’il est facile de lire et traiter des donnée provenant d’un fichier excel en .xls.

Laisser un commentaire