CodeIgniter – Genera un fichero CSV a partir de consulta

Si utilizáis el FrameWork CodeIgniter, generar ficheros CSV a partir de una consulta es relativamente sencillo. Os explicamos cómo.

Vamos a ir preparando el terreno y vamos a ir paso a paso. :

1. Creamos la vista con el siguiente código:

1
2
3
4
5
6
7
8
9
<?php
// Fichero: /application/views/jugadores_csv_view.php
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename="nombredelfichero.csv");
header("Pragma: no-cache");
header("Expires: 0");
 
echo $contenido;
?>

2. Preparamos el modelo con el código que devuelve el texto ya en formato CSV.

1
2
3
4
5
6
7
8
// Fichero: /application/models/jugadores_model.php
// Dentro del modelo añadimos el siguiente código
function jugadoresCreateCsv(){
   $sql = "SELECT * FROM jugadores WHERE goles > 5 ORDER BY nombre";
   $query = $this->db->query($sql);
   // Atentos a esta función que transforma el resultado de una query en CSV
   return $this->dbutil->csv_from_result($query);
}

3.1 Ahora le toca al controlador. Vamos al primer paso que consiste en preparar el controlador para poder utilizar la librería dbutil, función csv_from_result que utilitzamos en el

1
2
3
4
5
6
7
8
// Fichero: /application/controllers/jugadores.php
// Dentro de la función constructora cargamos la librería dbutil
function __construct(){
	parent::__construct();
	// Modelos
	$this->load->model('jugadores_model');
        $this->load->dbutil();
}

3.2 Y ahora creamos la función a la que llamaremos para crear el fichero y que también irá dentro del controlador.

1
2
3
4
5
6
7
8
// Fichero: /application/controllers/jugadores.php
// La función que define la creación del fichero 
public function createcsv(){
        // Los datos
        $data["contenido"]= $this->jugadores->jugadoresCreateCsv();
        // Cargamos la vista preparada con los headers CSV
        $this->load->view('jugadores_csv_view', $data);
}

Resumen del proceso

1. Hemos creado la vista preparada para decirle al navegador que será un fichero CSV
2. Hemos creado el modelo que gracias a la función “csv_from_result” de la librería “dbutil” convierte una query en csv
3. Le decimos al controlador que cargue la librería “dbutil”
4. Creamos la función que carga en la vista que hemos creado un contenido en formato CSV que nos ha creado el modelo.

Bueno, espero que os sirva de ayuda en vuestras creaciones.

Artículos relacionados

CodeIgniter From Scratch Sólo recomendaros este enlace donde encontraréis varios artículos, paso a paso de CodeIgniter. http://code.tutsplus.com/series/codeigniter-fr...
CodeIgniter – Ver si el navegador soporta di... Cuando instalamos un navegador en nuestro sistema operativo, lo hacemos en un idioma. Así, cuando navegamos, nuestro navegador lo hace en un idioma u ...
Codeigniter – Producción o desarrollo Codeigniter permite poner tu aplicación en modo producción o desarrollo según nos interese. En el caso de poner la aplicación en desarrollo, veremos l...
CodeIgniter – Llamar un modelo o librería de... Hay ocasiones que para ahorrar código, necesitaremos llamar a nuestros modelos directamente desde una vista sin pasar por los controladores. Supong...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*