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 – Generar imagen con librería GD... Estamos delante de un caso muy común: debemos crear una imagen, formato jpg o png, dinámica y que contenga datos dinámicos. Imaginemos que debemos mos...
CodeIgniter – Seguridad – No permitir ... Cuando de seguridad se trata, todo es poco. A la hora de programar, y mas concretamente configurar el Framework con el que trabajemos, es un punto que...
CodeIgniter – Debug e información de forma s... CodeIgniter proporciona una clase que facilita la programación. Activando esta clase desde nuestro controlador, en el momento de mostrar la vista, lis...
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 *

*