Foros del Web » Programación para mayores de 30 ;) » .NET »

Pasar Excel a SQL

Estas en el tema de Pasar Excel a SQL en el foro de .NET en Foros del Web. Hola amigos, bueno tengo un modulo donde subo mi archivo en Excel, y lo que deseo es poder pasar ese archivo (los datos que existen ...
  #1 (permalink)  
Antiguo 16/06/2009, 08:57
 
Fecha de Ingreso: agosto-2006
Mensajes: 112
Antigüedad: 17 años, 8 meses
Puntos: 2
Pasar Excel a SQL

Hola amigos, bueno tengo un modulo donde subo mi archivo en Excel, y lo que deseo es poder pasar ese archivo (los datos que existen en el) a una base de datos en sql 2005.

Gracias.
  #2 (permalink)  
Antiguo 17/06/2009, 09:30
 
Fecha de Ingreso: agosto-2006
Mensajes: 112
Antigüedad: 17 años, 8 meses
Puntos: 2
Respuesta: Pasar Excel a SQL

holaaa, alguien puede ayudarme
  #3 (permalink)  
Antiguo 17/06/2009, 09:34
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 6 meses
Puntos: 156
Respuesta: Pasar Excel a SQL

Hola

¿que versión de Excel utilizas?
¿lenguaje: c#, VB 2005, 2008....?

La idea que se me ocurre a mi es:

sólo tendrías que leer el fichero Excel (las celdas) y luego ese valor guardarlo en la BD.

Ahora no tengo ningún ejemplo a mano, pero creo que por este foro hay ejemplos de leer ficheros Excel. No es complicado.

Para hacerte una idea aquí tienes un ejemplo básico de leer ficheros Excel:

http://www.java-samples.com/showtuto...utorialid=1049

saludos
  #4 (permalink)  
Antiguo 19/06/2009, 03:08
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 6 meses
Puntos: 156
Respuesta: Pasar Excel a SQL

he probado esa herramienta pero sólo te crea una consulta SQL para crear una tabla.

saludos
  #5 (permalink)  
Antiguo 19/06/2009, 09:58
 
Fecha de Ingreso: mayo-2009
Mensajes: 3
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Pasar Excel a SQL

Se podría intentar importando el archivo de excel a un DataSet y de allí pasando al SQL?
  #6 (permalink)  
Antiguo 19/06/2009, 10:20
 
Fecha de Ingreso: febrero-2009
Mensajes: 472
Antigüedad: 15 años, 2 meses
Puntos: 14
Respuesta: Pasar Excel a SQL

Hola JackDaniel, si se puede, de hecho yo lo he hecho de esa manera. Te lo voy a explicar lo mejor que pueda, en caso de que tengas dudas no dudes en preguntar. Lo primero y mas importante esta hecho en vb.net
Vamos alla
Lo primero es que consideramos la hoja de excel como un origen de datos, como si fuese una base de datos. Una vez teniendo esa consideracion el codigo sale solo jejee

Código:
Imports System.Data
            Imports System.Data.OleDb
            Imports System.Data.SqlClient
A continuacion cargamos un Dataset con los datos del excell
Código:
Dim conexion As New OleDbConnection
            Dim comando As New OleDbCommand
            Dim adaptador As New OleDbDataAdapter
            Dim dsproductos As New DataSet
            Dim j As Integer

            conexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=direccion del excell; Extended Properties= Excel 8.0;"
            conexion.Open()
            comando.CommandText = "SELECT campos FROM [tabla$]"
            comando.Connection = conexion
            adaptador.SelectCommand = comando
            conexion.Close()
            adaptador.Fill(dsproductos, "productos")
IMPORTANTE: El nombre de la tabla tiene que llevar el simbolo $ no es que se me haya ido la mano

Ahora ya estan los datos cargados del excell asi que ya los podemos guardar en la base de datos

Código:
Dim conexion2 As New SqlConnection
Dim cmdguardar As New SqlCommand

For j = 0 To dsproductos.Tables(0).Rows.Count - 1
conexion2.ConnectionString = "cadena de conexion a la base de datos"
cmdguardar.CommandText="INSERT INTO tabla campo VALUES (@variable)"
cmdguardar.Connection=conexion2
cmdguardar.Parameters.Add(new sqlparameter("@variable",sqltype.VarChar, 50)).Value=dsproductos.Tables(0).Rows(j)("campo del dataset").ToString
                     

                conexion2.Open()
                cmdguardar.ExecuteNonQuery()
                cmdguardar.Parameters.Clear()
                conexion2.Close()
            Next
Mucha suerte. Un saludo

Pinty

pd: freegirl espero que a ti tambien te sirva de ayuda
  #7 (permalink)  
Antiguo 19/06/2009, 12:55
Avatar de cocu3  
Fecha de Ingreso: diciembre-2007
Mensajes: 235
Antigüedad: 16 años, 4 meses
Puntos: 6
Respuesta: Pasar Excel a SQL

entonces todo era cuestion de tener la idea de como hacerlo, o sea, tomar el archivo excell como la funete de datos, y de ahí que la biblioteca OleDB te recupera lo que quieras de donde lo quieras traer...xD
muy bien explicado, aunque no lo he provado claro..

saluds
__________________
editor de fotos
  #8 (permalink)  
Antiguo 22/06/2009, 10:22
 
Fecha de Ingreso: agosto-2006
Mensajes: 112
Antigüedad: 17 años, 8 meses
Puntos: 2
Respuesta: Pasar Excel a SQL

gracias nuevamente Pity probare y seguro que saldra, ya hice lo mismo con la Paginacion del DataList.

Un abrazo men
  #9 (permalink)  
Antiguo 22/06/2009, 15:32
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Respuesta: Pasar Excel a SQL

Cita:
Iniciado por useraul
lo que deseo es poder pasar ese archivo (los datos que existen en el) a una base de datos en sql 2005.
Y no puedes utilizar Integration Services?, para ese caso sería muy sencillo hacerlo y desde tu code mandas a llamar tu ETL, ya no te tendrías que preocupar por la lógica ni por la forma de hacerlo porque eso lo haría MSSQL
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #10 (permalink)  
Antiguo 22/06/2009, 16:00
 
Fecha de Ingreso: agosto-2006
Mensajes: 112
Antigüedad: 17 años, 8 meses
Puntos: 2
Respuesta: Pasar Excel a SQL

Cita:
Iniciado por RootK Ver Mensaje
Y no puedes utilizar Integration Services?, para ese caso sería muy sencillo hacerlo y desde tu code mandas a llamar tu ETL, ya no te tendrías que preocupar por la lógica ni por la forma de hacerlo porque eso lo haría MSSQL
Y como es que se haria eso Root?

Saludos...
  #11 (permalink)  
Antiguo 23/06/2009, 09:50
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Respuesta: Pasar Excel a SQL

te paso unas referencias para que tengas una mejor idea

ETL = Extraction, Transformation, and Load

http://www.accelebrate.com/sql_train...s_tutorial.htm
http://msdn.microsoft.com/en-us/library/ms169917.aspx

y así lo mandarías a llamar

http://www.codeproject.com/KB/databa...romCSharp.aspx

Espero que te sirvan

salu2
  #12 (permalink)  
Antiguo 23/06/2009, 15:08
 
Fecha de Ingreso: agosto-2006
Mensajes: 112
Antigüedad: 17 años, 8 meses
Puntos: 2
Respuesta: Pasar Excel a SQL

Cita:
Iniciado por Pinty Ver Mensaje
Hola JackDaniel, si se puede, de hecho yo lo he hecho de esa manera. Te lo voy a explicar lo mejor que pueda, en caso de que tengas dudas no dudes en preguntar. Lo primero y mas importante esta hecho en vb.net
Vamos alla
Lo primero es que consideramos la hoja de excel como un origen de datos, como si fuese una base de datos. Una vez teniendo esa consideracion el codigo sale solo jejee

Código:
Imports System.Data
            Imports System.Data.OleDb
            Imports System.Data.SqlClient
A continuacion cargamos un Dataset con los datos del excell
Código:
Dim conexion As New OleDbConnection
            Dim comando As New OleDbCommand
            Dim adaptador As New OleDbDataAdapter
            Dim dsproductos As New DataSet
            Dim j As Integer

            conexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=direccion del excell; Extended Properties= Excel 8.0;"
            conexion.Open()
            comando.CommandText = "SELECT campos FROM [tabla$]"
            comando.Connection = conexion
            adaptador.SelectCommand = comando
            conexion.Close()
            adaptador.Fill(dsproductos, "productos")
IMPORTANTE: El nombre de la tabla tiene que llevar el simbolo $ no es que se me haya ido la mano

Ahora ya estan los datos cargados del excell asi que ya los podemos guardar en la base de datos

Código:
Dim conexion2 As New SqlConnection
Dim cmdguardar As New SqlCommand

For j = 0 To dsproductos.Tables(0).Rows.Count - 1
conexion2.ConnectionString = "cadena de conexion a la base de datos"
cmdguardar.CommandText="INSERT INTO tabla campo VALUES (@variable)"
cmdguardar.Connection=conexion2
cmdguardar.Parameters.Add(new sqlparameter("@variable",sqltype.VarChar, 50)).Value=dsproductos.Tables(0).Rows(j)("campo del dataset").ToString
                     

                conexion2.Open()
                cmdguardar.ExecuteNonQuery()
                cmdguardar.Parameters.Clear()
                conexion2.Close()
            Next
Mucha suerte. Un saludo

Pinty

pd: freegirl espero que a ti tambien te sirva de ayuda


Hola Pinty, espero puedas ayudarme, mira ice todo lo dices en este mensake y ne sale este error

SqlParameterCollection sólo acepta objetos de tipo no null SqlParameter, no objetos Boolean

y me resalta en rojo esta linea

cmdSave.Parameters.Add(New SqlParameter("@variable", SqlDbType.VarChar, 30).Value = ds.Tables(0).Rows(j)("nombres")).ToString()


ayuda porfavor
  #13 (permalink)  
Antiguo 24/06/2009, 06:23
 
Fecha de Ingreso: febrero-2009
Mensajes: 472
Antigüedad: 15 años, 2 meses
Puntos: 14
Respuesta: Pasar Excel a SQL

Hola useraul, la variable que intentas pasar de que tipo es???, por que para el ejemplo que puse tome un elemento VarChar, eso es muy importante, el tipo de datos siempre tiene que ser el mismo

Un saludo
Pinty
  #14 (permalink)  
Antiguo 14/05/2010, 06:27
 
Fecha de Ingreso: mayo-2010
Mensajes: 1
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Pasar Excel a SQL

hice una macro que copia una informacion x, y luego la pega en un txt, y lo guarda como sql, pero con unas comillas 'xxxxxxxxxxx'
estas comillas hacen que se no pueda ejecutar de forma correcta el sql.
como hago para guardar sin esas malditas comillas
  #15 (permalink)  
Antiguo 08/03/2012, 11:54
Avatar de stuart_david3  
Fecha de Ingreso: agosto-2011
Mensajes: 215
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Pasar Excel a SQL

Hola!!! Pues yo he intentado con el código que hicieron el favor de postear aquí, pero me marca un error en la ruta de mi archivo, es decir en mi conexión:

Código vb:
Ver original
  1. conexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\RE2010.xls; Extended Properties= Excel 8.0;"
  2.         conexion.Open()

Me marca este error:

Mensaje de error no disponible, código de resultado: E_FAIL(0x80004005).


Cambie la ruta de mi archivo y me pasa lo mismo, no se si estos parámetros de conexión sean los correctos, ya que es la primera vez que trabajo con datos en excel. Yo trabajo con excel 2007, visual studio 2005 y SQL Server 2005...
  #16 (permalink)  
Antiguo 09/03/2012, 08:57
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 6 meses
Puntos: 156
Respuesta: Pasar Excel a SQL

la conexión para Excel 2007:
http://www.connectionstrings.com/excel-2007
__________________
Saludos
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 07:12.