Vamos a ver un ejemplo secillo para leer registros de Excel 2007 y mostrarlos en un grid, y a la ves insertar un nuevo registro capturado desde la interfaz de usuario con ASp.Net
Bien, pues manos a la obra
Aqui tienen el archivo de Excel de Ejemplo, como lo mensionamos antes, tiene formato de Office 2007 (.xlsx)
En un nuevo proyecto Web, agregamos un CommandButton, un label y un Gridview, tal como se observa en la imagen:
El Codigo:
En el Button, agregamos:
Dim archivo As String 'Declaramos una variable de tipo String para definir la ruta al archivo
archivo = Server.MapPath("agenda.xlsx") 'Asignamos la ruta
GridView1.DataSource = LeerArchivoExcel(archivo) ' Invocamos a la funcion LeerArchivoExcel, la cual devolverá un Dataset y sera el origen de los datos para el GridView
GridView1.DataBind()
El codigo de la funcion es el siguiente:
Private Function LeerArchivoExcel(ByVal file) As DataSet
'La cadena de conexion para leer un archivo de Excel 2007 es Microsoft.ACE.OLEDB.12.0, tal como se muestra a continuación
Dim m_sConn1 As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & _"Data Source=" & file & ";" & _"Extended Properties=""Excel 12.0;HDR=YES"""
'Generamos objeto de conexion
Dim conn2 As New OleDbConnection(m_sConn1)
'Definimos la consulta SQL para leer la informacion del archivo de Excel, noten que hacemos referencia a las Hojas, se puede leer cualquier hoja, siempre y cuando indiquemos el nombre con un signo $ y encerrado entre []
Dim consulta as String
consulta="Select * From [Hoja1$]"
'Lo siguiente ejecutar la conexion y la consulta y llenar el DataSet que devolvera la función
Dim da As New OleDbDataAdapter(consulta, conn2)
Dim ds As New DataSet()
Try
da.Fill(ds)
Return ds
Catch ex As Exception
Me.lbError.Text = ex.Message & file
Finally
conn2.Close()
End Try
End Function
Los espacio de nombres a usar son:
Imports System.Data.OleDb
Imports System.Data
y eso es todo, en la proxima publicacion mostraremos como agregar un registro al archivo de Excel desde ASP.Net
0 comentarios:
Publicar un comentario en la entrada