Leer e importar un excel con CodeIgnither

Archivo 0 9 Brocard Brocard
Muchas veces necesitamos leer e importar desde un excel a nuestra base datos para así tener todo el contenido de hojas de excel .xls o .xlsx en nuestro sistemas. Mediante la librería de PHPExcel les voy a dar una pequeña demostración de como realizar esta operación en sus sistemas mediante el framework CodeIgniter, usando librerías. 1.  Primeramente vamos a descargar PHPExcel y guardarlo prinicipalmente en esta dirección /application/libraries/lib_excel/ para tener todo en orden. lib_excel fue la carpeta que he creado de ejemplo donde voy a guardar todo lo descargado de la URL anterior. 2. Creamos nuestra propia librería yo la llame Excel.php en el directorio /application/libraries/
<?php 

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

require_once APPPATH."/libraries/lib_excel/PHPExcel.php";

class Excel extends PHPExcel{

  public function __construct()
  {
    parent::__construct();
  }
}

/* End of file */
/* Location: ./application/libraries/ */
3. Luego pasamos a crear la función o método a usar en la controladora o clase que usemos para importar:
//Importar desde Excel con libreria de PHPExcel
    public function importarExcel(){
    	//Cargar PHPExcel library
        $this->load->library('excel');

    	$name   = $_FILES['file']['name'];
     	$tname  = $_FILES['file']['tmp_name'];

        $obj_excel = PHPExcel_IOFactory::load($tname);       
       	$sheetData = $obj_excel->getActiveSheet()->toArray(null,true,true,true);

       	$arr_datos = array();
       	foreach ($sheetData as $index => $value) {            
            if ( $index != 1 ){
                $arr_datos = array(
                    'campo'  => $value['A'],
                    'campo1'  =>  $value['B'],
                    'campo2' =>  $value['C'],
                    'campo3'  =>  $value['D'],                                        
                ); 
		foreach ($arr_datos as $llave => $valor) {
			$arr_datos[$llave] = $valor;
		}
		$this->db->insert('example_table',$arr_datos);	
            } 
       	}
       	$result['valid'] = true;
	$result['message'] = 'Productos importados correctamente';

	$this->output
    	     ->set_content_type('application/json')
    	     ->set_output(json_encode($result)); 		
    }

Acerca del Autor

Sé el primero en comentar.

Para dejar un comentario tienes que Iniciar sesión.