Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

[SOLUCIONADO] Importar Excel en Visual Studio o Visual Basic

Estas en el tema de Importar Excel en Visual Studio o Visual Basic en el foro de Visual Basic clásico en Foros del Web. Buenas Tardes; Necesito ayuda para importar datos de ciertas columnas de excel a un datagridview o para que el sistema inserte los datos de excel ...
  #1 (permalink)  
Antiguo 12/03/2013, 14:05
Avatar de yamiblancoc  
Fecha de Ingreso: agosto-2011
Mensajes: 103
Antigüedad: 12 años, 8 meses
Puntos: 4
Sonrisa Importar Excel en Visual Studio o Visual Basic

Buenas Tardes;

Necesito ayuda para importar datos de ciertas columnas de excel a un datagridview o para que el sistema inserte los datos de excel a una base de datos en SQL Server

Estoy trabajando con Excel 2003, Visual Studio 2005 y Sql Server 2005

Mi archivo xls tiene columnas de la A a la AG pero yo solo quiero datos de las columnas R , O, P, Q y S... y realmente no se como realizar la cadena... lo que tengo hasta ahora es esto:


Código vb:
Ver original
  1. Dim Comm As New SqlCommand
  2.             AbrirConexion()
  3.  
  4.             Dim myStream As IO.Stream = Nothing
  5.             Dim BuscarArchivo As New OpenFileDialog()
  6.  
  7.             BuscarArchivo.InitialDirectory = "Desktop"
  8.             BuscarArchivo.Filter = "All files (*.*)|*.*"
  9.             BuscarArchivo.FilterIndex = 2
  10.             BuscarArchivo.RestoreDirectory = True
  11.  
  12.             If BuscarArchivo.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
  13.                 Try
  14.                     myStream = BuscarArchivo.OpenFile()
  15.                     If (myStream IsNot Nothing) Then
  16.  
  17.                         '**** IMPORTAR ARCHIVO A SQL ****
  18.                        Dim conexion As New OleDbConnection
  19.                         Dim comando As New OleDbCommand
  20.                         Dim adaptador As New OleDbDataAdapter
  21.                         Dim ds As New DataSet
  22.  
  23.  
  24.                         conexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & BuscarArchivo.FileName & " ; Extended Properties= Excel 8.0;"
  25.                         conexion.Open()
  26.  
  27.                         Dim hoja As String = Strings.Left(BuscarArchivo.SafeFileName.ToString, 31)
  28.  
  29.  
  30.  
  31.                         comando.CommandText = "SELECT R,O, P, Q, S " & _
  32.                                                 " FROM [" & hoja & "]"
  33.                         comando.Connection = conexion
  34.                         adaptador.SelectCommand = comando
  35.  
  36.                         adaptador.Fill(ds, "productos")
  37.  
  38.                        
  39.  
  40.                         Dim conexion2 As New SqlConnection
  41.                         Dim cmdguardar As New SqlCommand
  42.                         Dim filas As Integer = 0
  43.                         Dim inserts As Integer = 0
  44.  
  45.                      
  46. For Each f As DataRow In ds.Tables(0).Rows
  47.  If filas < ds.Tables(0).Rows.Count - 7 Then
  48. Comm.CommandText = "INSERT INTO [NSO].[dbo].[Items]([Categoria],[Cod_IMDB_Items],[Cod_NSO_Items],[Items],[Barcode])" & _
  49.                                 "VALUES('" & f(0).ToString() & " '," & f(1).ToString() & ", " & f(2).ToString() & " ,'" & f(3).ToString() & "','" & f(4).ToString() & "')"
  50.                                 Comm.Connection = Cone
  51.                                 inserts = inserts + Comm.ExecuteNonQuery()
  52.                                 filas = filas + 1
  53.                              
  54.                             Else
  55.                             End If
  56.                         Next
  57.  
  58.                         MsgBox("Se cargaron " + inserts.ToString() + " items en la lista de INV")
  59.                         conexion.Close()


la verdad he buscado y no encuentro una solucion... espero me ayuden y gracias a quienes puedan ayudarme
  #2 (permalink)  
Antiguo 19/03/2013, 12:35
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: Importar Excel en Visual Studio o Visual Basic

Hola!
No puedes seleccionar las columnas pasando el literal de la columna, debes pasar los nombres de los campos; la primera linea de tu archivo debe tener nombres de campos, asi por ejemplo, para las columnas R , O, P, Q y S

• nombre_campoR
• nombre_campoO
• nombre_campoP
• nombre_campoQ
• nombre_campoS

El Select seria:

Código vb:
Ver original
  1. comando.CommandText = "SELECT nombre_campoR, nombre_campoO, " _
  2.  & "nombre_campoP, nombre_campoQ, nombre_campoS "  _
  3.  & " FROM [" & hoja & "$]"

Etiquetas: basic, excel, sql, studio, visual
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 18:45.