Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

Cuando trabajamos con tablas Mysql una de las cosas que necesitamos aparte de lo obvio, mostrar los resultados, es la de tener una manera facil de descargar los datos de las mismas, si bien lo comun es descargar un csv o dejar encabezados en la tabla pura para la descarga en formato xls, lo cierto es que para el cliente final esto aveces no es bonito o mejor dicho no es transparente, por tal motivo hay que explorar otras maneras y una de las que mas me gusto fue con la libreria PHPExcel.
PHPExcel es un conjunto de clases PHP/Biblioteca para leer y escribir archivos de Excel (.xls / .xlsx) muy eficiente y facil de usar, pero para usarla dentro de CodeIgniter se necesitan algunas modificaciones en el código fuente para que esta pueda ser ejecutada.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /* * ======================================= * Author : Muhammad Surya Ikhsanudin * License : Protected * Email : [email protected] * * Dilarang merubah, mengganti dan mendistribusikan * ulang tanpa sepengetahuan Author * ======================================= */ require_once APPPATH."/third_party/PHPExcel.php"; class Excel extends PHPExcel { public function __construct() { parent::__construct(); } }
Para poder hacer la exportacion de los datos de la tabla puedes basarte en el siguiente controlador:
classTable_exportextendsController {function__construct(){parent::Controller();// Here you should add some sort of user validation// to prevent strangers from pulling your table data}functionindex($table_name){$query=$this->db->get($table_name);if(!$query)returnfalse;// Starting the PHPExcel library$this->load->library('PHPExcel');
$objPHPExcel=newPHPExcel();$objPHPExcel->getProperties()->setTitle("export")->setDescription("none");$objPHPExcel->setActiveSheetIndex(0);// Field names in the first row$fields=$query->list_fields();$col= 0;foreach($fieldsas$field){$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, 1,$field);$col++;}// Fetching the table data$row= 2;foreach($query->result()as$data){$col= 0;foreach($fieldsas$field){$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col,$row,$data->$field);$col++;}$row++;}$objPHPExcel->setActiveSheetIndex(0);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');// Sending headers to force the user to download the fileheader('Content-Type: application/vnd.ms-excel');header('Content-Disposition: attachment;filename="Products_'.date('dMy').'.xls"');header('Cache-Control: max-age=0');$objWriter->save('php://output');}}