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 – Tiempo expiración de las sesio... Este es uno de esos artículo breves y que no tienes en cuenta, hasta que surge el problema. Haces la aplicación con Codeigniter, trabajas con sesiones...
CodeIgniter – ID del último registro inserta... En muchas ocasiones, cuando insertamos un registro en la base de datos, nos interesa saber que identificador se le ha asignado. Bien, veamos cómo se h...
CodeIgniter – Quitar index.php de la url Para poder trabajar bien las url amigables en CodeIgniter, debemos quitar el index.php que sale por defecto cuando navegas por la aplicación. Hay que ...
CodeIgniter – Clase email Primero un pequeño resumen, solamente para refrescar la memoria: Refrescamos la memoria Dónde se configura el email Antes de enviar emails, hay q...

Deja un comentario

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

*