Foros del Web » Programando para Internet » PHP »

subir archivo excel a carpeta de servidor y guardar datos en mysql

Estas en el tema de subir archivo excel a carpeta de servidor y guardar datos en mysql en el foro de PHP en Foros del Web. hola, buenas tardes. necesito ayuda en lo siguiente. Quiero subir un archivo excel. a una carpeta de la pagina web, y guardar os datos del ...
  #1 (permalink)  
Antiguo 15/07/2013, 13:30
 
Fecha de Ingreso: junio-2013
Ubicación: santiago
Mensajes: 34
Antigüedad: 10 años, 10 meses
Puntos: 0
subir archivo excel a carpeta de servidor y guardar datos en mysql

hola, buenas tardes.

necesito ayuda en lo siguiente.

Quiero subir un archivo excel. a una carpeta de la pagina web, y guardar os datos del archivo excel en la base de datos mysql.

alguien tiene algun conocimiento sobre esto.

Gracias
  #2 (permalink)  
Antiguo 15/07/2013, 14:13
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: subir archivo excel a carpeta de servidor y guardar datos en mysql

Claro. Si quieres sugerencias, comienza por investigar sobre la librería phpexcel de codeplex. Si quieres que te hagan el trabajo, puedes poner una propuesta de empleo.
  #3 (permalink)  
Antiguo 15/07/2013, 14:48
 
Fecha de Ingreso: junio-2013
Ubicación: santiago
Mensajes: 34
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: subir archivo excel a carpeta de servidor y guardar datos en mysql

Eso hize investigue sobre phpexcel y estoy traando de incorporarlo pero no me carga el archivo me aparece error time_out y que la pagina no se a podido encontrar.

este el el codigo que estoy usando para subir el archivo y guardar en la base de datos

<!-- http://ProgramarEnPHP.wordpress.com -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>:: Importar de Excel a la Base de Datos ::</title>
</head>

<body>
<!-- FORMULARIO PARA SOICITAR LA CARGA DEL EXCEL -->
Selecciona el archivo a importar:
<form name="importa" method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data" >
<input type="file" name="excel" />
<input type='submit' name='enviar' value="Importar" />
<input type="hidden" value="upload" name="action" />
</form>
<!-- CARGA LA MISMA PAGINA MANDANDO LA VARIABLE upload -->

<?php
extract($_POST);
if ($action == "upload"){
//cargamos el archivo al servidor con el mismo nombre
//solo le agregue el sufijo bak_
$archivo = $_FILES['excel']['name'];
$tipo = $_FILES['excel']['type'];
$destino = "bak_".$archivo;
if (copy($_FILES['excel']['tmp_name'],$destino)) echo "Archivo Cargado Con Éxito";
else echo "Error Al Cargar el Archivo";
////////////////////////////////////////////////////////
if (file_exists ("bak_".$archivo)){
/** Clases necesarias */
require_once('Classes/PHPExcel.php');
require_once('Classes/PHPExcel/Reader/Excel2007.php');

// Cargando la hoja de cálculo
$objReader = new PHPExcel_Reader_Excel2007();
$objPHPExcel = $objReader->load("bak_".$archivo);
$objFecha = new PHPExcel_Shared_Date();

// Asignar hoja de excel activa
$objPHPExcel->setActiveSheetIndex(0);

//conectamos con la base de datos
$cn = mysql_connect ("localhost","colibri","Colibri1232") or die ("ERROR EN LA CONEXION");
$db = mysql_select_db ("ohl_db",$cn) or die ("ERROR AL CONECTAR A LA BD");

// Llenamos el arreglo con los datos del archivo xlsx
for ($i=1;$i<=47;$i++){
$_DATOS_EXCEL[$i]['nocontrol'] = $objPHPExcel->getActiveSheet()->getCell('B'.$i)->getCalculatedValue();
$_DATOS_EXCEL[$i]['nombre'] = $objPHPExcel->getActiveSheet()->getCell('C'.$i)->getCalculatedValue();
$_DATOS_EXCEL[$i]['grado']= $objPHPExcel->getActiveSheet()->getCell('D'.$i)->getCalculatedValue();
$_DATOS_EXCEL[$i]['grupo']= $objPHPExcel->getActiveSheet()->getCell('E'.$i)->getCalculatedValue();
$_DATOS_EXCEL[$i]['sexo'] = $objPHPExcel->getActiveSheet()->getCell('F'.$i)->getCalculatedValue();
}
}
//si por algo no cargo el archivo bak_
else{echo "Necesitas primero importar el archivo";}
$errores=0;
//recorremos el arreglo multidimensional
//para ir recuperando los datos obtenidos
//del excel e ir insertandolos en la BD
foreach($_DATOS_EXCEL as $campo => $valor){
$sql = "INSERT INTO alumnos VALUES (NULL,'";
foreach ($valor as $campo2 => $valor2){
$campo2 == "sexo" ? $sql.= $valor2."');" : $sql.= $valor2."','";
}
$result = mysql_query($sql);
if (!$result){ echo "Error al insertar registro ".$campo;$errores+=1;}
}
/////////////////////////////////////////////////////////////////////////

echo "<strong><center>ARCHIVO IMPORTADO CON EXITO, EN TOTAL $campo REGISTROS Y $errores ERRORES</center></strong>";
//una vez terminado el proceso borramos el
//archivo que esta en el servidor el bak_
unlink($destino);
}

?>
</body>
</html>

Etiquetas: carpeta, excel, mysql, servidor
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 19:57.