(VB.NET)
'' Esta funcion obtiene los nombres de las hojas de un libro EXCEL
Public Function ObtenerHojasEXCEL(ByVal Directorio As String)
'
' Es necesario agregar una referencia a ADODB.
'
' vas al menú Proyecto->Agregar referencia..., ahí seleccionarás ADODB
'
Try
Dim Strconn As New ADODB.Connection ' Instancia una conexion
With Strconn ' Se arma la cadena de conexion
.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Directorio & ";" & _
"Extended Properties='Excel 8.0'"
.Open()
End With
Dim rst As ADODB.Recordset ' Se instancia el recordset
rst = Strconn.OpenSchema(ADODB.SchemaEnum.adSchemaTables) ' Se guarda en el recordset el esquema de la tabla
Dim cadenas() As String ' Se crea el array en donde se almacenaran los nobres de las hojas
Dim contador As Integer ' Variable que se utiliza para control del array
contador = 0
While Not rst.EOF ' Mientras no se llege al final ( EOF ) del recordset se contiua en el bucle
ReDim Preserve cadenas(contador) ' Se re-dimenciona el array preservando su contenido.
cadenas(contador) = rst.Fields("TABLE_NAME").Value.ToString ' Se almacena en el array el nombre de la hoja
rst.MoveNext() ' Salta a la siguiente hoja en el libro
contador += 1 ' Incrementa el contador en uno
End While
Strconn.Close() ' Termina la conexion con el libro
Strconn = Nothing ' Vacia la conexion
Return (cadenas) ' Retorna el array para que pueda ser asigando a donde se desee
Catch ex As OleDb.OleDbException
MessageBox.Show("Error Cargando el Archivo de Excel: " & ex.Message)
End Try
End Function
Ejemplo:
Para probar el ejemplo se debera colocar un ListBox y un boton
Private Sub boton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles leer.Click
Dim contador As Integer ' Crea un contador para recorrer la coleccion
Dim cadenas() As String ' Crea una matriz en donde se almacenara el resultado de la consulta
Dim hojas As New LeerArchivos
cadenas = hojas.ObtenerHojasEXCEL("C:\Documents and Settings\Administrador\Mis documentos\daniel.xls")
For contador = 0 To cadenas.Length - 1
Me.ListBox1.Items.Add(cadenas(contador))
Next
End Sub


0 comentarios:
Publicar un comentario en la entrada