Foros del Web » Programando para Internet » PHP »

Cargar BD MySQL desde un EXCEL

Estas en el tema de Cargar BD MySQL desde un EXCEL en el foro de PHP en Foros del Web. Saludos. Siempre he cargado a la base de datos archivos CSV que tb pertenece a la familia MS Excel pero el formato es distinto. Con ...
  #1 (permalink)  
Antiguo 26/12/2005, 19:21
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
Cargar BD MySQL desde un EXCEL

Saludos.

Siempre he cargado a la base de datos archivos CSV que tb pertenece a la familia MS Excel pero el formato es distinto.

Con un simple code MySQL se puede cargar un archivo del tipo CSV pero para EXCEL no funka, probe con unas classes pero al cargar muchos datos se demora demaciado... o no se si seran las clases que he ocupado ke son lentas, pero en fin..

Me gsutaria saber si existe otra forma o si conocen de alguna clase que me recomienden que hayan ocupado.

Saludos nuevamente y Felix Año Nuevo anticipado..
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #2 (permalink)  
Antiguo 27/12/2005, 15:05
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
nadie sabe ?
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #3 (permalink)  
Antiguo 28/12/2005, 05:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Siempre he cargado a la base de datos archivos CSV que tb pertenece a la familia MS Excel pero el formato es distinto.
El CSV como formato no pertenece a MS Excel .. lo único que es este puede importar ese tipo de distribución de datos .. nada más (no confundas).

Cita:
Con un simple code MySQL se puede cargar un archivo del tipo CSV pero para EXCEL no funka, probe con unas classes pero al cargar muchos datos se demora demaciado... o no se si seran las clases que he ocupado ke son lentas, pero en fin..
Lo que sucede es que un formato nativo de Excel (.xls) tiene muchas cosas que "interpretar" .. cosas como por ejemplo como ya sabras un .xls puede tener "libros" y dentro de este formulas en las columnas .. y demás formato. Por eso una "classe" como la que has usado que en el fondo no es más que código PHP que se ejecuta (interpretado) lo que hace es "abrir" el archivo en sí y empezar a "parsear" (evaluar) todooooooo ese código anexo al "dato" en sí que tiene tu .xls para interpretarlo, por eso es un proceso que se puede demorar tiempo.

Es más factible como ya lo has hecho pasar tu planilla (hoja de cálculo) Excel a .cvs (exportanto desde Excel) y luego importar esos datos sobre Mysql con las funciones SQL que ya conoces que son rápidas y van al grano: sólo hay una pequeña estructura de datos que interpretar .. nada más que "filtrar" para llegar al dato en si puro.

Cita:
Me gsutaria saber si existe otra forma o si conocen de alguna clase que me recomienden que hayan ocupado.
Por mi parte no he ocupado más que classes para "leer un .xls original", entre otras cosas por qué el hecho de usar una classe te hace independiente del S.O. operativo que use el servidor o de alguna cosa más extra (extensión/librerias) instalada en el servidor. Pero .. si usas PHP bajo windows y en el servidor que corres tus scritps PHP de este proceso tienes instalado Excel podrías probar con las funciones de COM (www.php.net/com) para trabajar tu .xls .. Eso sí, ten presente lo dicho sobre la "portabilidad" de tu aplicación a otros S.O. que puedas usar u otras condiciones.

En sitios como www.phpclasses.org tienes de estas classes para trabajar con .xls dese COM .. revisalas.

Un saludo,
  #4 (permalink)  
Antiguo 28/12/2005, 10:00
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
gracias.

Vi las clases de phpclasses.org y la mayoria era solo para windows ya que utilizaban com() y sino solo de escrituro o un stream xls...

no sabes de una que exista por ahi.. que no sea pagada.

saludos.
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #5 (permalink)  
Antiguo 28/12/2005, 10:06
 
Fecha de Ingreso: diciembre-2005
Ubicación: Madrid, España
Mensajes: 154
Antigüedad: 18 años, 4 meses
Puntos: 2
Yo he usado la clase OLE del PEAR para exportar de MySQL a Excel, así que supongo que la operación inversa también estará soportada.

Suerte!
  #6 (permalink)  
Antiguo 28/12/2005, 10:13
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 21 años, 4 meses
Puntos: 2
encontre esta clase muy buena, simple y rapida...

http://prdownloads.sourceforge.net/p...se_mirror=ufpr
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #7 (permalink)  
Antiguo 27/04/2006, 14:07
 
Fecha de Ingreso: abril-2005
Ubicación: colombia
Mensajes: 242
Antigüedad: 19 años
Puntos: 0
saben como hago para cojer esa cadena y dividirla para guardar cada uno en una col de la base de datos.
la cadena que el genera es esta
$cadena = "\"".$data->sheets[0]['cells'][$i][$j]."\",";
$valor = explode(",", $cadena);
echo $valor[0];

al imprimir cadena sale esto : "A000","COLERA DEBIDO A VIBRIO CHOLERAE O1, BIOTIPO CHOLERAE","A","0","0", cada cosa que esta entre comillas es una colu. en la base de datos , al utiliza explode por "," no me funciona , saben como arreglo esto. ya intente cambiar la , por @ y tampoco me sirve que sera

gracias
__________________
:aplauso: Ivomat
  #8 (permalink)  
Antiguo 28/04/2006, 06:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por ivomat
saben como hago para cojer esa cadena y dividirla para guardar cada uno en una col de la base de datos.
la cadena que el genera es esta
$cadena = "\"".$data->sheets[0]['cells'][$i][$j]."\",";
$valor = explode(",", $cadena);
echo $valor[0];

al imprimir cadena sale esto : "A000","COLERA DEBIDO A VIBRIO CHOLERAE O1, BIOTIPO CHOLERAE","A","0","0", cada cosa que esta entre comillas es una colu. en la base de datos , al utiliza explode por "," no me funciona , saben como arreglo esto. ya intente cambiar la , por @ y tampoco me sirve que sera

gracias
Deberías continuar tus temas abiertos:

http://www.forosdelweb.com/f18/excel-mysql-sin-csv-388484/

Si lo haces así . .volvemos a lo mismo: preguntarte que usas .. tu código completo . .tus datos que usas .. su formato . .en fin . .No hagas que te repitan o pregunten lo mismo que ya te han comentado.

Abre tu tema (el que te dejé el link) y haz todos los comentarios que estimies oportunos en ese tema. Recuerda que cuanto -más- aportes TU de información .. mejor será la respuesta. DEBES! exponer un ejemplo de los datos que trabajas . .sino, no hay forma de orientarte o dar una solución ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 10:10.