Foros del Web » Programando para Internet » PHP »

php Excel reader

Estas en el tema de php Excel reader en el foro de PHP en Foros del Web. Hola... tengo un problema, necesito hacer que un php-excel-reader, suba ls datos que lee de excel a una tabla en mysql, no encuentr como hacerlo, ...
  #1 (permalink)  
Antiguo 21/06/2011, 09:40
Avatar de fernandaYO  
Fecha de Ingreso: mayo-2011
Ubicación: Medellin
Mensajes: 166
Antigüedad: 12 años, 11 meses
Puntos: 4
php Excel reader

Hola...

tengo un problema, necesito hacer que un php-excel-reader, suba ls datos que lee de excel a una tabla en mysql, no encuentr como hacerlo, quien me pueda ayudar mil gracias!
__________________
Umm, infraccion :(//
  #2 (permalink)  
Antiguo 21/06/2011, 09:51
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: php Excel reader

que extension tiene tu php-excel-reader?
  #3 (permalink)  
Antiguo 21/06/2011, 09:58
Avatar de fernandaYO  
Fecha de Ingreso: mayo-2011
Ubicación: Medellin
Mensajes: 166
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: php Excel reader

Cita:
Iniciado por Patriarka Ver Mensaje
que extension tiene tu php-excel-reader?


Extension?.. sera la version.. pues.. yo descargue php-excel-Reader 2.21
y pues no se si sera eso
__________________
Umm, infraccion :(//
  #4 (permalink)  
Antiguo 21/06/2011, 10:14
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: php Excel reader

tu archivo excel que extension tiene?
  #5 (permalink)  
Antiguo 21/06/2011, 10:20
Avatar de fernandaYO  
Fecha de Ingreso: mayo-2011
Ubicación: Medellin
Mensajes: 166
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: php Excel reader

Cita:
Iniciado por Patriarka Ver Mensaje
tu archivo excel que extension tiene?

El archivo excel es .xls
y es que si lo lee, pero no sube, pongo un insert para que lo suba al mysql y no funciona el insert
__________________
Umm, infraccion :(//
  #6 (permalink)  
Antiguo 21/06/2011, 10:22
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: php Excel reader

pon el codigo XD
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #7 (permalink)  
Antiguo 21/06/2011, 10:23
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: php Excel reader

hacele caso a mogurnon, y buscamos la solucion mas facil
  #8 (permalink)  
Antiguo 21/06/2011, 10:36
Avatar de fernandaYO  
Fecha de Ingreso: mayo-2011
Ubicación: Medellin
Mensajes: 166
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: php Excel reader

vale!

Código PHP:
<?php

$con
mysql_connect ('localhost''user''pass') or die ('Error en la base de datos');
$bddmysql_select_db ('aplicaciones') or die ('Error en la bdd'.mysl_error());

 
?>
<?php

define
('NUM_BIG_BLOCK_DEPOT_BLOCKS_POS'0x2c);
define('SMALL_BLOCK_DEPOT_BLOCK_POS'0x3c);
define('ROOT_START_BLOCK_POS'0x30);
define('BIG_BLOCK_SIZE'0x200);
define('SMALL_BLOCK_SIZE'0x40);
define('EXTENSION_BLOCK_POS'0x44);
define('NUM_EXTENSION_BLOCK_POS'0x48);
define('PROPERTY_STORAGE_BLOCK_SIZE'0x80);
define('BIG_BLOCK_DEPOT_BLOCKS_POS'0x4c);
define('SMALL_BLOCK_THRESHOLD'0x1000);
define('SIZE_OF_NAME_POS'0x40);
define('TYPE_POS'0x42);
define('START_BLOCK_POS'0x74);
define('SIZE_POS'0x78);
define('IDENTIFIER_OLE'pack("CCCCCCCC",0xd0,0xcf,0x11,0xe0,0xa1,0xb1,0x1a,0xe1));

function 
GetInt4d($data$pos) {
    
$value ord($data[$pos]) | (ord($data[$pos+1])    << 8) | (ord($data[$pos+2]) << 16) | (ord($data[$pos+3]) << 24);
    if (
$value>=4294967294) {
        
$value=-2;
    }
    return 
$value;
}

// http://uk.php.net/manual/en/function.getdate.php
function gmgetdate($ts null){
    
$k = array('seconds','minutes','hours','mday','wday','mon','year','yday','weekday','month',0);
    return(
array_comb($k,split(":",gmdate('s:i:G:j:w:n:Y:z:l:F:U',is_null($ts)?time():$ts))));
    } 

function 
array_comb($array1$array2) {
    
$out = array();
    foreach (
$array1 as $key => $value) {
        
$out[$value] = $array2[$key];
    }
    return 
$out;
}

function 
v($data,$pos) {
    return 
ord($data[$pos]) | ord($data[$pos+1])<<8;
}
class 
OLERead {
    var 
$data '';
    function 
OLERead(){    }

    function 
read($sFileName){
        
        if(!
is_readable($sFileName)) {
            
$this->error 1;
            return 
false;
        }
        
$this->data = @file_get_contents($sFileName);
        if (!
$this->data) {
            
$this->error 1;
            return 
false;
           }
           if (
substr($this->data08) != IDENTIFIER_OLE) {
            
$this->error 1;
            return 
false;
           }
        
$this->numBigBlockDepotBlocks GetInt4d($this->dataNUM_BIG_BLOCK_DEPOT_BLOCKS_POS);
        
$this->sbdStartBlock GetInt4d($this->dataSMALL_BLOCK_DEPOT_BLOCK_POS);
        
$this->rootStartBlock GetInt4d($this->dataROOT_START_BLOCK_POS);
        
$this->extensionBlock GetInt4d($this->dataEXTENSION_BLOCK_POS);
        
$this->numExtensionBlocks GetInt4d($this->dataNUM_EXTENSION_BLOCK_POS);
        
$bigBlockDepotBlocks = array();
        
$pos BIG_BLOCK_DEPOT_BLOCKS_POS;
        
$bbdBlocks $this->numBigBlockDepotBlocks;
        if (
$this->numExtensionBlocks != 0) {
            
$bbdBlocks = (BIG_BLOCK_SIZE BIG_BLOCK_DEPOT_BLOCKS_POS)/4;
        }
        
$Referencia $data[0];
        
$Talla $data[1];
        
$Base $data[2];
        
$Escote $data[3];
        
$Sisa $data[4];
        
$Altura $data[5];
        
$Tirante $data[6];
        
$sql="INSERT INTO prueba2 (Referencia, Talla, Base, Escote, Sisa, Altura, Tirante, Imagen) VALUES ('$Referencia', '$Talla', '$Base', '$Escote', '$Sisa', '$Altura', '$Tirante', 'NULL')";

        for (
$i 0$i $bbdBlocks$i++) {
            
$bigBlockDepotBlocks[$i] = GetInt4d($this->data$pos);
            
$pos += 4;
        }
        for (
$j 0$j $this->numExtensionBlocks$j++) {
            
$pos = ($this->extensionBlock 1) * BIG_BLOCK_SIZE;
            
$blocksToRead min($this->numBigBlockDepotBlocks $bbdBlocksBIG_BLOCK_SIZE 1);

            for (
$i $bbdBlocks$i $bbdBlocks $blocksToRead$i++) {
                
$bigBlockDepotBlocks[$i] = GetInt4d($this->data$pos);
                
$pos += 4;
            }
            
$bbdBlocks += $blocksToRead;
            if (
$bbdBlocks $this->numBigBlockDepotBlocks) {
                
$this->extensionBlock GetInt4d($this->data$pos);
            }
        }
        
$pos 0;
        ...............................

?>
eso es todo je

Toco recortarlo mucho por que no cabia!
__________________
Umm, infraccion :(//
  #9 (permalink)  
Antiguo 21/06/2011, 10:45
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: php Excel reader

En realidad la unica parte que necesitamos es cuando recorres el archivo
y cuando intentas guardarlo:
vamos a lo primero:

cuando lees el archivo podes mostrar los datos?
  #10 (permalink)  
Antiguo 21/06/2011, 10:46
Avatar de fernandaYO  
Fecha de Ingreso: mayo-2011
Ubicación: Medellin
Mensajes: 166
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: php Excel reader

si los muestra, pero, no es lo que necesito.
__________________
Umm, infraccion :(//
  #11 (permalink)  
Antiguo 21/06/2011, 10:50
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: php Excel reader

pues yo veo el insert pero no el mysql_query que lo ejecute
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #12 (permalink)  
Antiguo 21/06/2011, 10:53
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: php Excel reader

por eso mismo vamos por parte,
ya sabemos que los muestra ahora cuando haces esto:

$sql="INSERT INTO prueba2 (Referencia, Talla, Base, Escote, Sisa, Altura, Tirante, Imagen) VALUES ('$Referencia', '$Talla', '$Base', '$Escote', '$Sisa', '$Altura', '$Tirante', 'NULL')";

tiene razon MOGURBON te falta insertarlos justamente!!!
  #13 (permalink)  
Antiguo 21/06/2011, 10:54
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: php Excel reader

Te recomiendo mejor usar phpexcel de codeplex, es mucho más fácil de usar y es capaza de leer hasta excel 2007.

Te pego aquí como leo algunos archivos:

Código PHP:
Ver original
  1. $ext=array_pop(explode(".",$archivo));//obtenemos la extension del archivo
  2. if($ext!="xls" and $ext!="xlsx")//si no es un archivo de excel
  3.     die("Debe enviar un archivo de excel (xls,xlsx)");
  4. else{
  5.     require_once 'lib/phpexcel/PHPExcel/IOFactory.php';
  6.     if($ext=="xlsx")
  7.         $objReader = PHPExcel_IOFactory::createReader('Excel2007');//si es excel 2007 cargamos su lector
  8.     else
  9.         $objReader = new PHPExcel_Reader_Excel5();//si no, cargamos el lector para archivos xls
  10.     $objReader->setReadDataOnly(true);
  11.     $objPHPExcel = $objReader->load("$archivo");
  12.     $objWorksheet = $objPHPExcel->getActiveSheet(0);//indicamos que empezamos con la primer hoja
  13.     $highestRow = $objWorksheet->getHighestRow(); //Leemos cuantas filas tiene e.g. 10
  14.     if(!$highestRow)//si tiene 0 filas
  15.         die("El archivo de excel no contiene informacion o bien esta no es accesible");
  16.         ///comenzamos a leer el archivo
  17.     for ($row = 1; $row <= $highestRow; ++$row){
  18.         $a=$objWorksheet->getCellByColumnAndRow(0, $row)->getValue();
  19.         $b=$objWorksheet->getCellByColumnAndRow(1, $row)->getValue();
  20.         $c=$objWorksheet->getCellByColumnAndRow(2, $row)->getValue();
  21.     //Aqui puedes meter la info del excel a la base de datos
  22.         mysql_query("insert into mi_tabla values ('$a','$b','$c')");
  23.     }
  24. }
Las validaciones las puedes hacer según las necesites.
  #14 (permalink)  
Antiguo 21/06/2011, 10:56
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: php Excel reader

de acuerdo con ocp001a es mas robusto ese manejador de archivos de excel
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #15 (permalink)  
Antiguo 21/06/2011, 11:55
Avatar de fernandaYO  
Fecha de Ingreso: mayo-2011
Ubicación: Medellin
Mensajes: 166
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: php Excel reader

y cual es la libreria excel que requiere ese?
__________________
Umm, infraccion :(//
  #16 (permalink)  
Antiguo 21/06/2011, 11:56
Avatar de fernandaYO  
Fecha de Ingreso: mayo-2011
Ubicación: Medellin
Mensajes: 166
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: php Excel reader

Cita:
Iniciado por Patriarka Ver Mensaje
por eso mismo vamos por parte,
ya sabemos que los muestra ahora cuando haces esto:

$sql="INSERT INTO prueba2 (Referencia, Talla, Base, Escote, Sisa, Altura, Tirante, Imagen) VALUES ('$Referencia', '$Talla', '$Base', '$Escote', '$Sisa', '$Altura', '$Tirante', 'NULL')";

tiene razon MOGURBON te falta insertarlos justamente!!!
Si es cierto tienen razon... ya mismo lo hare!
__________________
Umm, infraccion :(//
  #17 (permalink)  
Antiguo 21/06/2011, 12:48
Avatar de fernandaYO  
Fecha de Ingreso: mayo-2011
Ubicación: Medellin
Mensajes: 166
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: php Excel reader

sigo en las mismas!
Código PHP:
$Referencia $data[0];
        
$Talla $data[1];
        
$Base $data[2];
        
$Escote $data[3];
        
$Sisa $data[4];
        
$Altura $data[5];
        
$Tirante $data[6];
        
        
        
$sql="INSERT INTO prueba2 (Referencia, Talla, Base, Escote, Sisa, Altura, Tirante, Imagen) VALUES ('$Referencia', '$Talla', '$Base', '$Escote', '$Sisa', '$Altura', '$Tirante', 'NULL')";


$resultado=@mysql_query($sql,$con);
        if(@
mysql_affected_rows($con))
        {
        }
        else
        { 
__________________
Umm, infraccion :(//
  #18 (permalink)  
Antiguo 21/06/2011, 12:59
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: php Excel reader

hace esto:
echo $sql="INSERT INTO prueba2 (Referencia, Talla, Base, Escote, Sisa, Altura, Tirante, Imagen) VALUES ('$Referencia', '$Talla', '$Base', '$Escote', '$Sisa', '$Altura', '$Tirante', 'NULL')";
mostralo y luego pegalo en el phpmyadmin para ver si la query esta bien
  #19 (permalink)  
Antiguo 21/06/2011, 13:25
Avatar de fernandaYO  
Fecha de Ingreso: mayo-2011
Ubicación: Medellin
Mensajes: 166
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: php Excel reader

Cita:
Iniciado por Patriarka Ver Mensaje
hace esto:
echo $sql="INSERT INTO prueba2 (Referencia, Talla, Base, Escote, Sisa, Altura, Tirante, Imagen) VALUES ('$Referencia', '$Talla', '$Base', '$Escote', '$Sisa', '$Altura', '$Tirante', 'NULL')";
mostralo y luego pegalo en el phpmyadmin para ver si la query esta bien
lo que me aparece despus del echo

Código PHP:
INSERT INTO prueba2 (ReferenciaTallaBaseEscoteSisaAlturaTiranteImagenVALUES ('''''''''''''''NULL'
__________________
Umm, infraccion :(//
  #20 (permalink)  
Antiguo 21/06/2011, 13:43
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: php Excel reader

los valores estan vacios!
y entonces como decis que los muestra
  #21 (permalink)  
Antiguo 21/06/2011, 14:28
Avatar de fernandaYO  
Fecha de Ingreso: mayo-2011
Ubicación: Medellin
Mensajes: 166
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: php Excel reader

haber.. estoy diciendo que muestra que lee lo qeu hay en excel.. eso es lo qeu muestra...
__________________
Umm, infraccion :(//
  #22 (permalink)  
Antiguo 22/06/2011, 07:19
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: php Excel reader

Hola Fer, vos tenes este codigo:
Referencia = $data[0];
$Talla = $data[1];
$Base = $data[2];
$Escote = $data[3];
$Sisa = $data[4];
$Altura = $data[5];
$Tirante = $data[6];
si haces un echo de estas variables funciona verdad?
entonces por que la siguiente linea te devuelve esto?
INSERT INTO prueba2 (Referencia, Talla, Base, Escote, Sisa, Altura, Tirante, Imagen) VALUES ('', '', '', '', '', '', '', 'NULL')
  #23 (permalink)  
Antiguo 22/06/2011, 09:02
Avatar de fernandaYO  
Fecha de Ingreso: mayo-2011
Ubicación: Medellin
Mensajes: 166
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: php Excel reader

Cita:
Iniciado por Patriarka Ver Mensaje
Hola Fer, vos tenes este codigo:
Referencia = $data[0];
$Talla = $data[1];
$Base = $data[2];
$Escote = $data[3];
$Sisa = $data[4];
$Altura = $data[5];
$Tirante = $data[6];
si haces un echo de estas variables funciona verdad?
entonces por que la siguiente linea te devuelve esto?
INSERT INTO prueba2 (Referencia, Talla, Base, Escote, Sisa, Altura, Tirante, Imagen) VALUES ('', '', '', '', '', '', '', 'NULL')

yo no digo que eso es lo que me funciona, digo qeu lo que me funciona es la lectura del del excel!
__________________
Umm, infraccion :(//
  #24 (permalink)  
Antiguo 22/06/2011, 09:42
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: php Excel reader

Mira aca ya lo solucionaron:
http://www.forosdelweb.com/f18/xls-m...on-php-592959/
  #25 (permalink)  
Antiguo 22/06/2011, 10:06
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: php Excel reader

esta es la liga de la libreria , cheka bien los requerimientos por que luego por eso no jala

http://phpexcel.codeplex.com/

y lo que no entiendo es como dices que funciona la lectura de excel si los campos estan vacios??
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo

Etiquetas: excel, reader
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:10.