martes, 12 de agosto de 2014

PHPExcel - Codeigniter

Este post trata de la integración de la librería PHPExcel en Codeigniter, aunque se podría aplicar a cualquier librería, como por ejemplo mPDF, ya que la carga de dichas librería es idéntica.

Para empezar deberíamos de descargar dichas librerías desde la web.
Descargar

Una vez descomprimido los ficheros se deberían de ubicar en la carpeta de /application/third_party,



Ahora simplemente quedaría crear una librería dentro de la carpeta de libraries, que realizara la carga de PHPExcel en nuestro código.

El código que nos permite carga PHPExcel es el siguiente:



<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

require_once APPPATH."/third_party/PHPExcel.php"; 
 
class Excel extends PHPExcel { 
    public function __construct() { 
        parent::__construct(); 
    } 
}

Dicha librería realiza un require de los archivos que hemos colocado en la ruta de /application/third_party, y contruye la clase Excel, a partir del constructor de la clase padre, la clase PHPExcel.
Como le hemos puesto el nombre de Excel a la clase que acabamos de crear, el fichero debería de llamarse Excel.php

Como utilizamos dicha librería

La manera de utilizar dicha librería es de la misma forma de cuando cargamos librería de Codeigniter.
Esta carga se hace desde el fichero controlador que vayamos a utilizar.


<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Inicio extends CI_Controller {

 public function __construct(){
  
  parent::__construct();
        $this->load->library('excel');
    }
    
    public function exportarExcel(){
  $this->excel->setActiveSheetIndex(0);
  //name the worksheet
  $this->excel->getActiveSheet()->setTitle('Informe');
  //set cell A1 content with some text
  $this->excel->getActiveSheet()->setCellValue('A1','Celda1');
  $this->excel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
  $this->excel->getActiveSheet()->getStyle('A1')->getFont()->setSize(10);
  
  $filename="nombre.xls"; //save our workbook as this file name
  header('Content-Type: application/vnd.ms-excel'); //mime type
  header('Content-Disposition: attachment;filename="'.$filename.'"'); //tell browser what's the file name
  header('Cache-Control: max-age=0'); //no cache
    }
    
}

para probar dicho código se utiliza la siguiente url:
http://localhost/nombreApp/inicio/exportarExcel


No hay comentarios:

Publicar un comentario