Leer Excel

03/08/2006 - 16:36 por Squiur | Informe spam
Saludos, Quisiera saber una manera de leer un excel, poque cuando lee el
campo fecha u hora de un excel me trae un numero en formato double y no en
formato Hora

por ahora lo hago asi:

Dim EXL As New Excel.Application
Dim pa As String

Dim archivo As String
Open1.Filter = "xls Archivos de Excel (*.xls)|*.xls"
Open1.ShowDialog()
archivo = Open1.FileName



Dim WSheet As New Excel.Worksheet
Try
WSheet = EXL.Workbooks.Open(archivo).Worksheets.Item(1)
Catch ex As Exception
Exit Sub
End Try

'EXL.Range("A2:E3").Select()
Dim CData As Excel.Range
Dim cdata2 As Excel.Range
Dim forma As Excel.FormatCondition
CData = EXL.Cells
cdata2 = EXL.Cells

Dim i, j As long

i = 2
j = 1
'MsgBox(CData(i, j).value)
While CStr(CData(i, j).value) <> ""
Dim FilaItem As ListViewItem = New ListViewItem
FilaItem.Text = CData(i, 1).value()
FilaItem.SubItems.Add(CStr(CData(i, 2).value()))
Dim cedu As long = clng(CData(i, 2).value())
FilaItem.SubItems.Add(NombreYApellido(cedu))
FilaItem.SubItems.Add(cdata2(i, 3).value())
FilaItem.SubItems.Add(CData(i, 4).value())
FilaItem.SubItems.Add(CStr(CData(i, 5).value()))

Tabla1.Items.Add(FilaItem)
i = i + 1
End While

EXL.Workbooks.Close()
 

Leer las respuestas

#1 SoftJaén
03/08/2006 - 18:19 | Informe spam
"Squiur" preguntó:

Quisiera saber una manera de leer un excel, poque cuando
lee el campo fecha u hora de un excel me trae un numero
en formato double y no en formato Hora



Hola:

Que yo sepa, los valores de fecha y hora siempre se guardan en valores
Double. Otra cosa distinta es el formato que tú le quieras dar a ese valor
Double para que represente la correspondiente fecha y hora.

En lugar de utilizar la biblioteca de Excel, si tu hoja de cálculo tiene la
típica estructura de una tabla (campos y filas), puedes utilizar el ISAM de
Excel para leer los campos. Aquí te dejo un ejemplo que muestra todas las
filas de una hoja (Hoja1) de un campo con el tipo de dato Hora:

Dim cnn As New OleDbConnection

cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Mis documentos\Libro1.xls;" & _
"Extended Properties='Excel 8.0;HRD=Yes'"

Try
' Construimos la consulta SQL de selección para consultar
' una hoja de cálculo llamada Hoja1.
'
Dim sql As String = _
"SELECT Fecha FROM [Hoja1$]"

' Creamos el comando para ejecutar la consulta
Dim cmd As New OleDbCommand(sql, cnn)

' Abrimos la conexión
cnn.Open()

' Ejecutamos el comando, abriendo un objeto DataReader
'
Dim dr As OleDbDataReader = _
cmd.ExecuteReader(CommandBehavior.CloseConnection)

' Leemos los registros
While dr.Read
Dim fecha As DateTime = dr.GetDateTime(0)
MessageBox.Show(fecha.ToShortTimeString)
End While

' Cerramos el objeto DataReader, e implícitamente
' la conexión
dr.Close()

Catch ex As OleDbException
MessageBox.Show(ex.Errors(0).Message)

Catch ex As Exception
MessageBox.Show(ex.Message)

End Try

Para más información sobre el ISAM de Excel, consulta el siguiente artículo
técnico:

Trabajar con ADO, DAO y Excel
http://mvp-access.com/softjaen/arti..._excel.htm

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

Preguntas similares