Está en la página 1de 3

CODEIGNITER – EXPORTAR

A EXCEL CON LIBRERÍA


PHPEXCEL
25 abril, 2017 CodeIgniter 3

Comparte:

A la hora de hacer nuestras aplicaciones con CodeIgniter, puede surgir la


necesidad de exportar los resultados de una consulta a Excel. Para ello, os detallo
los pasos para instalar la librería necesario, y un pequeño ejemplo de creación de
un excel que se descarga… Empecemos con artículo CodeIgniter – Exportar a
excel con librería PHPExcel

Lo primero que haremos es descargar la librería PHPExcel que encontraréis en el


siguiente enlace:

▪ https://github.com/PHPOffice/PHPExcel

La tenéis ya? Lo descomprimis en una carpeta, y el contenido que hay en la


carpeta Classes, lo copias en la carpeta /application/third_party, por lo que os
quedará de la siguiente manera:
// Carpeta /application/third_party

[PHPExcel]

PHPExcel.php

index.html

Primera parte realizada. Segundo paso, ahora que tenemos la librería descargada
en la carpeta third_party, pasamos a crear nuestra propia librería para poder
utilizarla. Creamos el fichero Excel.php dentro de la carpeta libreries:
// Contenido fichero /application/libreries/Excel.php
<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
* Clase para la exportación de resultados a excel
* @version 0.1 Primera version
*/
require_once APPPATH ."/third_party/PHPExcel.php";
class Excel extends PHPExcel {
public function __construct(){
parent::__construct();
}
}
?>

Como podéis observar, lo único que hace es un extend de la librería sin modificar
nada, por lo que podremos utilizar esta librería como si fuera la original sin
problemas.

Vamos a poner el tercer y penúltimo paso: crear el controlador. Vamos a hacer un


ejemplo que sólo crea un excel con poco contenido y obliga a descargarlo.
<?php

// Contenido del fichero /application/controllers/jugadores.php


defined('BASEPATH') OR exit('No direct script access allowed');
class Jugadores extends CI_Controller {
public function __construct(){
parent::__construct();
// Models
...
// Libraries
$this--->load->library('excel');
}

...

public function exportar2excel(){


$this->excel->setActiveSheetIndex(0);
$this->excel->getActiveSheet()->setTitle('test worksheet');
$this->excel->getActiveSheet()->setCellValue('A1', 'Un poco de
texto');
$this->excel->getActiveSheet()->getStyle('A1')->getFont()-
>setSize(20);
$this->excel->getActiveSheet()->getStyle('A1')->getFont()-
>setBold(true);
$this->excel->getActiveSheet()->mergeCells('A1:D1');

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition:
attachment;filename="nombredelfichero.xls"');
header('Cache-Control: max-age=0'); //no cache
$objWriter = PHPExcel_IOFactory::createWriter($this->excel,
'Excel5');

// Forzamos a la descarga
$objWriter->save('php://output');
}
...
}

Como habéis podido observar, el controlador llama a la librería que nosotros


hemos creado, y con ella se crea una función que genera el excel a descargar.
Atentos que en el código de ejemplo he puesto puntos suspensivos porqué indico
que ahí puede ir más código.

Y ya por último, sólo nos queda llamar desde una vista a la función del controlador
para que genere el excel:
// Contenido fichero /application/views/jugadores.php

...

<a href="<?php echo base_url(); ?>jugadores/exportar2excel"


target="_blank">Descargar excel</a>
...

Ahora el primer paso de crear el excel y descargarlo en CodeIgniter ya lo sabéis,


ahora es cosa vuestra rellenar ese excel con el contenido que queráis…

Espero que os haya sido de utilidad el artículo CodeIgniter – Exportar a excel con
librería PHPExcel.

También podría gustarte