Blogdevphp

Codeigniter : Générer un fichier CSV

2014-04-26 codeigniter

Codeigniter, nous fournit des méthodes, afin de sortir les données de la base de données au format CSV dans un fichier.

En ce qui concerne, le formatage des données, on a la classe Database Utility et pour la sortie des données, le helper file

Pour cela, on va utliser la méthode dbutil->csv_from_result pour le formatage CSV.

 De plus, la méthode write_file pour écrire dans le fichier.

Le modèle 

On va écrire ici notre fonction, pour récupérer les données dont on a besoin. Notre modèle a pour nom user_model.php.

<?php

public function donneesToCsv() {

  return $this->db->order_by('nom_user')
              ->get('user');
      
 }

?>

Ici, je récupère tous les utilisateurs qui seront rangés par ordre alphabétique.

 

Le contrôleur

C'est ici que nous allons utiliser les données afin de les sortir dans un fichier au format CSV :

<?php

public function csv_file(){

 $this->load->dbutil();
 $this->load->helper('file');
 $result = $this->user_model->donneesToCsv();
 $delimiter = ",";
 $newline = "\r\n";
 $csv = $this->dbutil->csv_from_result($result, $delimiter, $newline);
 
 if (!write_file('C:\file.csv', $csv))
  {
   echo 'Un problème est survenu lors de la génération du fichier CSV';
   }
  else
   {
  echo 'Le fichier CSV a bien été généré';
    }
}

?>

Premièrement, il faut charger la classe dbutil et le helper file, il est possible de le faire dans le fichier autoload.php. Puis, dans notre variable result, on a la liste des utilisateurs, récupérée, grâce à la méthode définie, dans le fichier user_model. On précise le délimiteur et on saute une ligne à chaque nouvel utilisateur.

Par la suite, les données sont stockées dans le fichier auquel on aura renseigné le chemin. Comme on dit en anglais, "that's it", vous aurez un beau fichier au format CSV sous la main.

comments powered by Disqus
Copyright © 2018 blogdevphp.fr - Tous droits réservés