Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/03/2013, 14:05
Avatar de yamiblancoc
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