elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Como importar datos de una hoja de calculo excel a una BD sql
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como importar datos de una hoja de calculo excel a una BD sql  (Leído 7,670 veces)
cbr20

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Como importar datos de una hoja de calculo excel a una BD sql
« en: 17 Mayo 2013, 19:11 pm »

Hola foro, ¿que tal?

Pues les venia con esta duda:
- Tengo un proyecto en vb.net (usando visual studio 2010 para mas informacion), que usa una base de datos enorme (1GB de datos, para mi eso es enoooorme) en mysql. Pues lo que hace la aplicaion es "importar" los datos de la hoja de calculos y ponerlos en una tabla.

Tonto no soy (por ahora, jaja, el día de mañana no se que será de mí) asi que he hecho que los campos de la tabla de la base de datos coincida con los nombres de los campos en la hoja de calculo (mas que nada para que coincida).

Bueno, pues mi duda es: ¿como hago yo para que mediante un metodo en vb.net la tabla de la base de datos coja los datos de la hoja de calculo excel?

Les dejo un poco de mi codigo para que asi puedan orientarse mejor (y poder ayudarme con más eficiencia, como no, una imagen vale mas que mil palabras).

Antes de nada unas premisas: tengo una clase vb que realiza la conexion a la base de daatos y otra que realiza los metodos pertinentes para controlarla etc, resumiendo, que el control de la BD esta echo, lo que necesito saber es como (que codigo sql y añadidos de vb.net necesarios para su funcionamiento) importar estos datos.

'El objeto objHojita es para controlar la clase de control BD
'Importar es el metodo que se encargara de importar los datos (por lo visto no me dara un derrame cerebral inventando nombres, eh?), y lo que hago es pasarle la ruta del archivo excel por un textbox, una tabla que contendra datos de forma temporal ("Altas") y una tabla que contendra los datos de forma mas permanente ("TAltas").

objHojita.Importar(txtRutaArchivo.Text, "Altas", "TAltas")

'Y la clase de control de BD, el metodo de importacion es este:


Sub Importar(ByVal excel, ByVal hoja, ByVal destino)

Try
'MyBase es el objeto para la conexion en profundo con la BD (trankis, funciona de maravilla)
MyBase.AbrirConexion()
Àqui empieza lo gordo. Esta linea de debajo, la variable connect, se supone que deberia contener la ruta del archivo y algo mas (no se el que, pero me han dicho que lo ponga asi, la ruta mas lo otro)
Connect = "'" + excel + "' 'Excel 8.0;HDR=Yes;IMEX=1;'"
'Y esta linea en un principio lo que hace es que pilla los datos, los mete en la tabla "destino" ("TAltas"), y luego copia los datos de la tabla destino en la tabla hoja ("Altas"). El caso es que falla.
MyBase.IniciarComando("INSERT INTO `" + hoja + "` SELECT * FROM `" + destino + "` IN `" + Connect + "`")
MyBase.InicioTransaccion()
MyBase.EjecutarComandoTR()
MyBase.AceptarTrasancion()
Catch ex As Exception
MessageBox.Show(ex.Message)
MyBase.RechazarTrasancion()
End Try
MyBase.CerrarConexion()
End Sub

Vale, asi lo he intentado hacer. Solucion que propongo: importar los datos de la hoja de calculo a la tabla destino ("TAltas") y luego ya si eso los copio en la otra.

En definitiva: no funciona como yo lo hago.
Asi que: ¿como hago para importar los datos de un excel a una tabla BD?

Solo necesito la sintaxis, llevarlo a .net ya me encargo yo.
Y lo siento si molesto a alguien poniendo este tema en esta zona del foro, es uqe no sabia si ponerlo en vb.net o en la zona sql.

Muchas gracias por su presencia y por sus aportaciones.

Por cualquier duda cosultadme aqui en el foro.


En línea

el-brujo
ehn
***
Desconectado Desconectado

Mensajes: 21.585


La libertad no se suplica, se conquista


Ver Perfil WWW
Re: Como importar datos de una hoja de calculo excel a una BD sql
« Respuesta #1 en: 17 Mayo 2013, 19:45 pm »

Citar
Asi que: ¿como hago para importar los datos de un excel a una tabla BD?

en vb.net ni idea, pero lo puedes hacer directamente, puedes exportar el fichero excel en formato csv, separado por , o " cada campo y eso luego lo puedes importar a mysql sin problemas.

Creas la tabla en mysql y cada campo que coincida con la separación campo1,campo2,campo3 y marchando.


En línea

cbr20

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Como importar datos de una hoja de calculo excel a una BD sql
« Respuesta #2 en: 17 Mayo 2013, 20:21 pm »

Estoo, vale, ok, de acuerdo, buena idea.

Pero hay un problemilla. ¿como lo importo?
Es que esa era mi pregunta a fin de cuentas, jaja   ;D
En línea

el-brujo
ehn
***
Desconectado Desconectado

Mensajes: 21.585


La libertad no se suplica, se conquista


Ver Perfil WWW
Re: Como importar datos de una hoja de calculo excel a una BD sql
« Respuesta #3 en: 17 Mayo 2013, 21:01 pm »

jajaj si esa era la duda.

con el phpmyadmin mismo puedes importar ficheros csv, no hace falta ni usar el load data.

Yo lo he hecho con el webmin:


    
Citar
Select a text data file to import into MySQL database ..
This file must contain one database record per line, with the fields in either tab separated or CSV format.

Text file import options
Text file source    
From local file    
From uploaded file    
Table to import data into    
Delete data in table first?    Yes No
Ignore duplicate rows?    Yes No
File format    CSV with quotes CSV without quotes Tab separated
Character set for data    
En línea

cbr20

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Como importar datos de una hoja de calculo excel a una BD sql
« Respuesta #4 en: 20 Mayo 2013, 10:15 am »

Gracias tio, en serio gracias, un colega mio tenia un problema parecido al mio e hizo lo que has puesto (no me entere de nada de lo que me dijo, como tampoco sabe dl tema XD), pero yo sigo igual.

Haber si lo he entendido: ¿Importo directamente el excel a la BD desde phpmyadmin (el cual he usado en mas de una ocasion)?

Verás, lo que necesito más que nada es sintaxis de sql. La importacion sera dinamica (el usuario es el que decide cuando se realizara la importacion, ya que el excel sera distinto segun el usuario que lo utilice)

Vamos, que lo unico que necesito es conocer la sintaxis sql que realice la imprtacion.
En línea

cbr20

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Como importar datos de una hoja de calculo excel a una BD sql
« Respuesta #5 en: 20 Mayo 2013, 10:43 am »

Hola, ¿que tal familia?, ¿bien?, me alegro mucho.

Pues gracias a seguir rebuscando por ahi encontre un sitio donde exponen sintaxis sql que realiza dicha importacion de datos.

Aqui les dejo el link:
http://www.programasdesergio.somee.com/Apuntes/SQL/015SQL.html

Y gracias a el-brujo por sus aportaciones.

Pero aun (si, todavía da problemas la sintaxis) hay un problema.

Al ejecutar el codigo, salta un error en la sintaxis sql (Error en sintaxis sql, se esperaba "Select", "Delete", "Update" etc). En fin, que el codigo sql que les voy a exponer se supone que deberia importar los datos de un excel a una tabla de sql:

LOAD DATA INFILE `RutaExcel` INTO TABLE `Tabla1` FIELDS TERMINATED BY `;` (Campo1, Campo2, Campo3);

¿Esta bien escrito? ¿el Fields Terminated by `;` es con un ; para el caso de un excel?

¿Alguna sugerencia?

De antemano, gracias.
En línea

cbr20

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Como importar datos de una hoja de calculo excel a una BD sql
« Respuesta #6 en: 20 Mayo 2013, 11:25 am »

LOAD DATA INFILE `C:\Users\Usuario1\Desktop\Archivito.csv` INTO TABLE `tablaparaexcel` FIELDS TERMINATED BY `;` (campo1, campo2)

Este es mi codigo sql que deberia realizar la importacion de un excel (convertido a cvs "separado por comas") y que solo tiene dos columnas (todo coincide).

Pero al ejecutar este comando mysql salta y da un error:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`C:\Users\Usuario1\Desktop\Archivoto.csv` INTO TABLE `tablaexcel` FIELDS TERMINATED BY `' at line 1

Haber si alguine versado en sql y en mysql puede ayudarme.
En línea

cbr20

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: Como importar datos de una hoja de calculo excel a una BD sql
« Respuesta #7 en: 22 Mayo 2013, 12:56 pm »

Buenas noticias (y malas). La sintaxis de antes solucionada (no era nada) pero ha surgido un problemon....

Resulta que no puedo realizar select into cuando se trata de control de BD en vb.net.

Tengo que usar ado.net para pasar datos excel a access.

¿Pero, como hago eso?

Hay que tener en cuenta que el excel es de varias paginas.

De antemano, gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
programacion en visual basic.ayuda para importar de excel a excel
Programación Visual Basic
Railil 2 4,300 Último mensaje 20 Junio 2006, 16:08 pm
por Railil
Exportar datos de ListView a la Hoja de Calculo OpenOffice
Programación Visual Basic
jack06 4 6,434 Último mensaje 25 Junio 2011, 22:44 pm
por mpaty
[SOLUCIONADO]Importar datos de excel
.NET (C#, VB.NET, ASP)
diego_lp 3 7,421 Último mensaje 27 Noviembre 2009, 23:53 pm
por MANULOMM
Hoja de calculo.
Dudas Generales
usuani 0 3,468 Último mensaje 8 Mayo 2010, 15:31 pm
por usuani
Como Grabar desde una Aplicacion de Java a una Hoja de calculo en excel?
Java
DaniCrist 2 3,521 Último mensaje 30 Noviembre 2011, 20:05 pm
por Pablo Videla
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines