Cita:
Iniciado por emmax 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'obtener el nombre del archivo
nombreXls = Path.GetFileName(xlsx)
'obtener la extension del archivo
strExtension = Path.GetExtension(xlsx)
If strExtension = ".xls" Or strExtension = ".xlsx" Then
'MsgBox("es un archivo excel")
If (File.Exists(xlsx)) Then
xls_cn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + xlsx + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=0'")
'xls_cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + xlsx + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=0'"
'xls_cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.12.0;Data Source=" + xlsx + ";Extended Properties='Excel 12.0;HDR=YES'"
m_Excel.Workbooks.Open(xlsx)
Dim dt As New DataTable("Datos")
Using xls_cn
xls_cn.Open()
xls_cmd.CommandText = "SELECT * FROM [Hoja1$]"
xls_cmd.Connection = xls_cn
xls_reader.SelectCommand = xls_cmd
'contar candidad de filas del excel
total = m_Excel.Range("a1").CurrentRegion.Rows.Count
For i = 0 To total - 2
'Guardamos los datos en el DataTable
Dim da As New OleDbDataAdapter(xls_cmd)
da.Fill(dt)
fecha = dt.Rows(i).Item(2)
factura = dt.Rows(i).Item(3)
telefono = dt.Rows(i).Item(4).ToString
extension = dt.Rows(i).Item(5).ToString
tTrafico = dt.Rows(i).Item(6)
cantidad = dt.Rows(i).Item(8)
bruto = dt.Rows(i).Item(10)
neto = dt.Rows(i).Item(13)
facturado = dt.Rows(i).Item(16)
Next
End Using
End If
Else
MsgBox("Introduzca un archivo .xls o .xlsx .") Exit Sub
End If
Porque puede ser? estoy haciendo algo mal?