Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/05/2013, 01:53
maialenlopez
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años
Puntos: 7
Respuesta: Leer datos de excel desde vb.net

Cita:
Iniciado por emmax Ver Mensaje
Con el codigo que ya tienes puedes hacer un OleDbDataAdapter y llenar un DataTable con el y ya despues una opcion seria llenar un DataGridView para ver los datos....
Esto es lo que me has comentado?? He echo lo siguiente pero me tarda muchisimo para llegar a leer una fila cada vez.

Código vb.net:
Ver original
  1. 'obtener el nombre del archivo
  2.                 nombreXls = Path.GetFileName(xlsx)
  3.                 'obtener la extension del archivo
  4.                 strExtension = Path.GetExtension(xlsx)
  5.                 If strExtension = ".xls" Or strExtension = ".xlsx" Then
  6.                     'MsgBox("es un archivo excel")
  7.                     If (File.Exists(xlsx)) Then
  8.                         xls_cn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + xlsx + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=0'")
  9.                         'xls_cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + xlsx + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=0'"
  10.                         'xls_cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.12.0;Data Source=" + xlsx + ";Extended Properties='Excel 12.0;HDR=YES'"
  11.                         m_Excel = CreateObject("Excel.Application")
  12.                         m_Excel.Workbooks.Open(xlsx)
  13.  
  14.                         Dim dt As New DataTable("Datos")
  15.  
  16.                         Using xls_cn
  17.  
  18.                             xls_cn.Open()
  19.                             xls_cmd.CommandText = "SELECT * FROM [Hoja1$]"
  20.                             xls_cmd.Connection = xls_cn
  21.                             xls_reader.SelectCommand = xls_cmd
  22.  
  23.                             'contar candidad de filas del excel
  24.                             total = m_Excel.Range("a1").CurrentRegion.Rows.Count
  25.  
  26.                             For i = 0 To total - 2
  27.                                 'Guardamos los datos en el DataTable
  28.                                 Dim da As New OleDbDataAdapter(xls_cmd)
  29.                                 da.Fill(dt)
  30.  
  31.                                 fecha = dt.Rows(i).Item(2)
  32.                                 factura = dt.Rows(i).Item(3)
  33.                                 telefono = dt.Rows(i).Item(4).ToString
  34.                                 extension = dt.Rows(i).Item(5).ToString
  35.                                 tTrafico = dt.Rows(i).Item(6)
  36.                                 cantidad = dt.Rows(i).Item(8)
  37.                                 bruto = dt.Rows(i).Item(10)
  38.                                 neto = dt.Rows(i).Item(13)
  39.                                 facturado = dt.Rows(i).Item(16)
  40.                             Next
  41.                             MsgBox("valor de i: " + i)
  42.                         End Using
  43.                     End If
  44.                 Else
  45.  
  46.                     MsgBox("Introduzca un archivo .xls o .xlsx .")
  47.                     Exit Sub
  48.                 End If

Porque puede ser? estoy haciendo algo mal?
__________________
Gracias por todo;

Un saludo