Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

no puedo importar excel.csv a mysql

Estas en el tema de no puedo importar excel.csv a mysql en el foro de Mysql en Foros del Web. hola amigos he intentado subir mi archivo de excel a mysql pero no me sale esto es lo que tengo campos en excel.csv fecha concepto ...
  #1 (permalink)  
Antiguo 23/05/2009, 20:56
Avatar de julita_punch  
Fecha de Ingreso: abril-2007
Ubicación: Lima - Peru
Mensajes: 505
Antigüedad: 17 años
Puntos: 4
no puedo importar excel.csv a mysql

hola amigos
he intentado subir mi archivo de excel a mysql pero no me sale
esto es lo que tengo

campos en excel.csv
fecha
concepto
documento
total

campos en mysql
id
fecha
concepto
documento
total

he probado por

Formato del archivo importado

csv y me sale El número de campos de los datos CSV en la línea 1 no es válido.

CSV usando LOAD DATA y me sale que fue un exito junto a este texto
LOAD DATA LOCAL INFILE '/tmp/phphP9hQf' INTO TABLE `caja` FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'# Filas afectadas: 1

pero cuando examino mis registros tengo esto
Textos completos id fecha concepto documento total
Editar Borrar 5 -�#�,�#�# [�R�e�d�]��-�#�,�#�#�0�� �"¬ "?���#�,�#�#� -�#�,�#�# [�R�e�d�]


de verdad agradeceria mucho su ayuda

un abrazo
__________________
Julita Borda Hokama
a lo mejor esto ayuda
  #2 (permalink)  
Antiguo 23/05/2009, 23:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: no puedo importar excel.csv a mysql

¿Y revisaste que fuese un texto en ASCII?
La tabla en CSV ¿tiene encabezados de columna? Si es así debes ponerle la cláusula IGNORE 1 LINES.
Lee con atención este link: MySQL con clase
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 24/05/2009, 10:05
Avatar de julita_punch  
Fecha de Ingreso: abril-2007
Ubicación: Lima - Peru
Mensajes: 505
Antigüedad: 17 años
Puntos: 4
Respuesta: no puedo importar excel.csv a mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
¿Y revisaste que fuese un texto en ASCII?
La tabla en CSV ¿tiene encabezados de columna? Si es así debes ponerle la cláusula IGNORE 1 LINES.
Lee con atención este link: MySQL con clase
Hola gnzsoloyo
mi excel.csv
tiene estos campos
fecha concepto documento total
01 de abril del 2009 saldo inicial fdfd 10

y acabo de leer la pagina que me recomentaste
pero no entendi muy bien que digamos
por ejemplo que es eso de ASCII
__________________
Julita Borda Hokama
a lo mejor esto ayuda
  #4 (permalink)  
Antiguo 24/05/2009, 11:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: no puedo importar excel.csv a mysql

Empecemos así:
1. ASCII es una de las formas de codificar los caracteres basados en el alfabeto latino y occidental moderno y es uno de los más usados en los archivos de texto plano (como lo es el .CSV). Es tal vez la forma más difundida de codificar caracteres, pero no la única. Como sabemos, una computadora no entiende letras, sólo entiende números binarios, por lo que se debe establecer un código para que el binario se interprete como letras.

2. El hecho de que tengas una línea de encabezados es parte del problema, ya que MySQL intenta poner esos encabezados en los campos definidos, y no puede.

3. La fecha tal y como está almacenada en el CSV está mal. No se debe guardar una fecha en ese formato de texto por dos razones:
a) Las bases de datos no la interpretarán como fecha, sino como cadena de caracteres, lo que al intentar meterla en un campo DATE generará errores de conversión.
b) Porque estás desperdiciando bytes, ya que necesitas un campo VARCHAR de al menos 24 caracteres para almacenar algo que se puede hacer con 8 (ancho real del DATETIME en la tabla). Poner la fecha en ese formato es un asunto de representación, no de almacenamiento. En las bases de datos los campos se cargan con el formato "AAAA-MM-DD HH:mm:ss" o bien "AAAA-MM-DD". El resto se resuelve en el momento de representarlo en pantalla.

Dicho esto, lo que tienes que hacer son dos cosas:
1. Generar el CSV (o requerir que lo hagan) donde las fechas tengan el formato correcto.
2. Agregarle la condición de IGNORE xx LINES a tu sentencia.

La sentencia debería quedar mas o menos así:
Código mysql:
Ver original 
Atención: Asegúrate que tanto los terminadores de línea como los separadores de columnas sean correctos. Puede haber variaciones menores que generen errores.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 24/05/2009, 13:13
Avatar de julita_punch  
Fecha de Ingreso: abril-2007
Ubicación: Lima - Peru
Mensajes: 505
Antigüedad: 17 años
Puntos: 4
Respuesta: no puedo importar excel.csv a mysql

encontre lo de ascii en
Juego de caracteres del archivo:

y ahora que subo el archivo la fecha me sale con puros ceros
y lo demas como virus de pc

mira aca he subido 3 imagenes de los pasos que estoy haciendo para que salga y el excel.csv

http://steeljrv.com/excel-mysql/

gracias
por tu apoyo
__________________
Julita Borda Hokama
a lo mejor esto ayuda
  #6 (permalink)  
Antiguo 24/05/2009, 14:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: no puedo importar excel.csv a mysql

Ese documento no es un archivo .CSV, es un archivo de Excel que tiene la cadena ".csv" en el nombre, pero sigue teniendo la extensión y contenido de un archivo de Excel.
Empieza por grabarlo realmente como .CSV...
Si quieres ver si realmente tiene lo que debería, usa el Notepad (Block de notas) para leerlo. Si está como archivo plano en CSV, entonces deberías poder leer todo el contenido sin problemas, con sus renglones separados por saltos de línea y los campos por ";"...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 24/05/2009, 16:19
Avatar de julita_punch  
Fecha de Ingreso: abril-2007
Ubicación: Lima - Peru
Mensajes: 505
Antigüedad: 17 años
Puntos: 4
Respuesta: no puedo importar excel.csv a mysql

casi casi lo he logrado con tu ayuda y tu paciencia
gnzsoloyo

he subido las imagenes

http://steeljrv.com/excel-mysql/

pero las fechas aun me salen en cero

y ya aprendi a convertir el excel a .csv

la pregunta ahora es como lograria que las fechas se visualizaran?


gracias ¡¡¡¡
__________________
Julita Borda Hokama
a lo mejor esto ayuda
  #8 (permalink)  
Antiguo 24/05/2009, 16:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: no puedo importar excel.csv a mysql

El problema se mantiene por el formato en que se encuentra la fecha.
Se están exportando como "dd-mm-aa", y eso hace que no pueda realizar la conversión en un sólo paso.
Existen dos formas de resolver la cosa: o tratas de hacer que la fecha se grabe bien, como "aaaa-mm-dd", o bien hay que hacer un paso triple para la carga.
Este segundo caso es cargar primero todo en una tabla temporal, donde el campo fecha sea un VARCHAR, luego hacer un volcado de los datos a la tabla final, usando una función de cadena que reacomode los caracteres para que MySQL lo pueda meter en un campo fecha. En realidad es más fácil de lo que parece.

¿Qué eliges?
Lo más simple sería probar primero el primer caso: Pon a esas celdas el formato pesonalizado "yyyy-mm-dd" y luego graba nuevamente el .CSV.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 24/05/2009, 16:39
Avatar de julita_punch  
Fecha de Ingreso: abril-2007
Ubicación: Lima - Peru
Mensajes: 505
Antigüedad: 17 años
Puntos: 4
Respuesta: no puedo importar excel.csv a mysql

eso lo hago desde excel?

entro a formato de celdas y personalizo?¿

con yyyy-mm-dd ?
__________________
Julita Borda Hokama
a lo mejor esto ayuda
  #10 (permalink)  
Antiguo 24/05/2009, 16:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: no puedo importar excel.csv a mysql

SI. O con "aaaa-mm-dd". Fijae bien, porque varía con la regionalización de la pC que estés usando.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 24/05/2009, 16:56
Avatar de julita_punch  
Fecha de Ingreso: abril-2007
Ubicación: Lima - Peru
Mensajes: 505
Antigüedad: 17 años
Puntos: 4
Respuesta: no puedo importar excel.csv a mysql

lo hago pero cuando lo subo por el php mya admin no me reconoce y me sigue botando pueros ceros


que hago ¡¡¡¡¡
__________________
Julita Borda Hokama
a lo mejor esto ayuda
  #12 (permalink)  
Antiguo 24/05/2009, 17:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: no puedo importar excel.csv a mysql

Es probable que el problema es que estás cargando un campo NULL al principio, esto es, el CSV tiene una columna vacía al inicio, y si no tienes un campo donde se carga, está intentando hacerlo en el fecha, con lo que entra una fecha NULL.
Haz esto: Elimina esa columna y veamos si funciona...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 24/05/2009, 18:12
Avatar de julita_punch  
Fecha de Ingreso: abril-2007
Ubicación: Lima - Peru
Mensajes: 505
Antigüedad: 17 años
Puntos: 4
Respuesta: no puedo importar excel.csv a mysql

no funciona...
y el campo vacio que puse en el .csv
era para enlazarlo con el id de la tabla caja

ya he borrado el id y borrado el campo vacio en .csv
y sigo con la fecha aaaa-mm-dd en la pestaña personalizar
(tuve que escribir aaaa-mm-dd porque no aparecia por ningun lado dentro de personalizar)


__________________
Julita Borda Hokama
a lo mejor esto ayuda
  #14 (permalink)  
Antiguo 24/05/2009, 20:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: no puedo importar excel.csv a mysql

Bueno, finalmente me puse a analizar el problema en dos frentes:
El archivo .CSV adolece de dos problemas adicionales:
1. Los números decimales deben ser almacenados con puntos y no comas como separador decimal. Esto es porque se está trabajando sobre la sentencia LOAD DATA, con lo que MySQL espera recibir datos como formato en-US, y esto significa: punto decimal. La coma se reserva como separador de campos o columnas (de allí su extensión CSV) .
2. Dentro de las cadenas de texto hay comillas, y estás indicando que las comillas son separadores de columna... lo que genera un error de interpretación. Has utilizado la cláusula ESCAPED BY, pero resulta que eso implicaría que las comillas deberían estar como \", y están como "".
Es mejor eliminar el ESCAPED BY y el ENCLOSED BY, y dejar el código así:
Código mysql:
Ver original
  1. LOAD DATA LOCAL INFILE 'c:\\caja2.csv'
  2. INTO TABLE `caja`
  3. (FECHA, CONCEPTO, DOCUMENTO, TOTAL);
Eso si, para que esto resulte, el formato entrate del texto en el .CSV debería ser semejante a esto:
Cita:
1999/01/01;Saldo inicial;uno;245.36
1999/01/02;Presto Milagros;dos;6.7
1999/01/03;Cancelacion de piñones y servicios;tres;319
1999/01/04;Metalurgia Los Olivos;cuatro;257.6
Esto funcionaría bien...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #15 (permalink)  
Antiguo 25/05/2009, 15:31
Avatar de julita_punch  
Fecha de Ingreso: abril-2007
Ubicación: Lima - Peru
Mensajes: 505
Antigüedad: 17 años
Puntos: 4
Respuesta: no puedo importar excel.csv a mysql

hola amigo
ayer despues de tantas pruebas opte por convertir la fecha en varchar
y todo funcionaba ok
pero ahora que estoy subiendo los archivos no me funcona las dos primeras columnas de fecha y nombres se almacena dentro del campo fecha en el bd y las otros campos estan vacias

porque pasa esto?


por cierto ayer usaba excel 2007
y hoy el 2003
__________________
Julita Borda Hokama
a lo mejor esto ayuda
  #16 (permalink)  
Antiguo 25/05/2009, 15:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: no puedo importar excel.csv a mysql

Cita:
Iniciado por julita_punch Ver Mensaje
hola amigo
ayer despues de tantas pruebas opte por convertir la fecha en varchar
y todo funcionaba ok
pero ahora que estoy subiendo los archivos no me funcona las dos primeras columnas de fecha y nombres se almacena dentro del campo fecha en el bd y las otros campos estan vacias

porque pasa esto?


por cierto ayer usaba excel 2007
y hoy el 2003
Revisa el contenido del CSV con el Notepad. Debe habe algún problema en el contenido o en la generación del archivo.
Acuérdate que el contenido debe respetar ciertas reglas, entre ellas, no poner comas dentro de los campos numéricos o dentro de los campos de cadena, y no poner comillas dentro de los de cadena. Genera errores al azar.
Por lo demás, Office 2007 es la pesadilla de los programadores. Es preferible que te mantengas con el 2003.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #17 (permalink)  
Antiguo 26/05/2009, 15:35
Avatar de julita_punch  
Fecha de Ingreso: abril-2007
Ubicación: Lima - Peru
Mensajes: 505
Antigüedad: 17 años
Puntos: 4
Respuesta: no puedo importar excel.csv a mysql

muchas gracias por todo gnzsoloyo
descubir que cuando iba a importar (despues de revisar el block de notas)
seleccionando dentro de CSV usando LOAD DATA
tenia la opcion Campos terminados en con su ; (punto y coma)
lo cual lo converti a coma solamente y funciono a la perfeccion

ahora estoy haciendo una especie de tuto para subirlo
y evitar que otros sufran como yo lo hice


gracias de todo corazon
muchas gracias por tu paciencia y tus ganas de enseñar ¡¡¡¡
__________________
Julita Borda Hokama
a lo mejor esto ayuda
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 05:43.