Foros del Web » Programando para Internet » PHP »

Importar datos de Excel a PHP

Estas en el tema de Importar datos de Excel a PHP en el foro de PHP en Foros del Web. Si alguien me puede dar una ayuda para importar datos de una planilla de excel usando PHP para ingresar a la BD MySQL, gracias....
  #1 (permalink)  
Antiguo 05/09/2008, 00:27
 
Fecha de Ingreso: septiembre-2008
Mensajes: 1
Antigüedad: 15 años, 7 meses
Puntos: 0
De acuerdo Importar datos de Excel a PHP

Si alguien me puede dar una ayuda para importar datos de una planilla de excel usando PHP para ingresar a la BD MySQL, gracias.

Última edición por GatorV; 05/09/2008 a las 08:34
  #2 (permalink)  
Antiguo 05/09/2008, 06:41
 
Fecha de Ingreso: septiembre-2008
Mensajes: 19
Antigüedad: 15 años, 7 meses
Puntos: 5
Respuesta: Importar datos de Excel a PHP

Hola,

Mejor que enviártelo por correo, dejo aquí la información para compartir.

Puedes realizarlo de varias maneras, una de ellas es mediante funciones COM de Excel, por ejemplo:

fichero.xlt (Plantilla Excel)
Usuario Clave Perfil
user1 key1 perfil1
user2 key2 perfil2
user3 key3 perfil3

Código PHP que muestra los datos en un tabla y los inserta a MySQL:

Código PHP:
<?php
function mostrarDatos($hoja)
{
    
$hoja->activate;
    
//---
    
echo "<table border='1'>";
    for(
$fila=1;$fila<=4;$fila++){
        echo 
"<tr>";
        for(
$col=1;$col<=3;$col++){
            echo 
"<td>".$hoja->Cells($fila,$col)."</td>";
        }
        echo 
"</tr>";
    }
    echo 
"</table>";
}

function 
volcarMySQL($hoja)
{
    
$hoja->activate;
    
$con mysql_connect("localhost","root","rita"); 
    
mysql_select_db("wordpress"$con); 
    for(
$fila=2;$fila<=4;$fila++){
        
$usuario $hoja->Cells($fila,1);
        
$clave $hoja->Cells($fila,2);
        
$perfil $hoja->Cells($fila,3);
        
$sql "INSERT INTO cuentas(usuario,clave,perfil) VALUES ('$usuario','$clave','$perfil')";
        
mysql_query($sql,$con);
    }
    
mysql_close($con);        
}

$nombre_fichero $_SERVER['DOCUMENT_ROOT']."/importExcelAMySQL/fichero.xlt";
$excel = new COM("Excel.sheet") or die ("Error al instanciar Excel");
$excel->Application->DisplayAlerts false;
$plantilla $excel->application->Workbooks->Open($nombre_fichero)
     or die(
"Error al abrir el fichero excel");;
$excel->Application->Visible=1;
$hoja $plantilla->Worksheets("Hoja1");
//---
mostrarDatos($hoja);
volcarMySQL($hoja);
?>
  #3 (permalink)  
Antiguo 05/09/2008, 08:36
Avatar de rene-silva  
Fecha de Ingreso: agosto-2008
Ubicación: La Paz, Bolivia
Mensajes: 12
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Importar datos de Excel a PHP

La solución de @Juan_Bautista es para un entorno win32, para poder hacerlo para otros OSs tendrás que usar http://sourceforge.net/projects/phpexcelreader . Es muy bueno y acá un ejemplo para la generación de código para la inserción a base de datos

Código PHP:
require_once 'Excel/reader.php';
    
$data = new Spreadsheet_Excel_Reader();
    
// Set output Encoding.
    
$data->setOutputEncoding('CP1251');
    
$data->read('Convenios.xls');
    
$query "";
    for (
$i 2$i <= $data->sheets[0]['numRows']; $i++) {
        
$query .= "insert into convenio values('$i',";
        for (
$j 1$j <= 16$j++) {
            
$query.="'".addslashes($data->sheets[0]['cells'][$i][$j])."'";
            if(
$j 16)
            
$query.=",";
        }
        
$query .=")&|&\n";
    }
    echo 
$query;
    
$array explode('&|&',$query);
    for (
$i=0;$i<sizeof($array)-1;$i++)    {
        
$result = @mysql_query($array[$i], $CONNECT); 
        if(
$result == NULL) {
            echo 
" ERROR EN LA LINEA : ".$i;
            echo 
"$array[$i]";
        }
    } 
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




La zona horaria es GMT -6. Ahora son las 13:22.