Una función sencilla para importar una hoja de Excel en un DataSet.
Hace poco tiempo tuve que hacer una página ASP.NET que leyera los datos de una planilla Excel y los guardara en un DataSet. En mi caso en particular precisaba enlazar dichos datos en una ComboBox, que es lo que les voy a exponer en este caso.
1) Lo primero que debemos hacer es definir el path del archivo en el archivo Web.config (en el caso que estemos creando una aplicación Web)
<appSettings>
<!-- Path clientes
--><add key="Path_Clientes"
value="C:\Inetpub\wwwroot\Solicitudes\Clientes.xls"/></appSettings>2) Luego, en el evento Page_Load de la página, llamamos a la función CargarClientes() que es la que tiene el código necesario para cargar la hoja Excel. La función CargarServicios tiene la misma funcionalidad básica pero apunta a otro Objeto (Servicios) que no está implementada en este artículo.
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
If CargarClientes() AndAlso CargarServicios() then
'Introducir aquí el código de usuario para inicializar la página
Else
JavaMsgBox("No existen los archivos necesarios para cargar la página.
Contacte al administrador")
Return
End IfEnd IfEnd Sub3) Finalmente, definimos la función en cuestión. Como pre requisito, debemos tener creada en la página una ComboBox llamada CMBcliente en donde se cargaran los clientes
Function CargarClientes()
As BooleanTry
'Leer el path del archivo Excel que tiene los datos del clienteDim path As String = ConfigurationSettings.AppSettings("Path_Clientes")
'Si el archivo existe...
If File.Exists(path) Then
'Dimensionar los elementos necesarios para leer y cargar los datos
Dim oConn As New OleDbConnection
Dim oCmd As
New OleDbCommand
Dim oDa As
New OleDbDataAdapter
Dim oDs As
New DataSet
'Atención: Esta es la cadena de conexión. La misma lee el archivo especificado en el path
oConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & _
path & "; Extended
Properties= Excel 8.0;"
' Abrir la conexión, y leer [Hoja 1] del archivo Excel
oConn.Open()
oCmd.CommandText = "SELECT * FROM [Hoja1$]"
oCmd.Connection = oConn
oDa.SelectCommand = oCmd
'Llenar el DataSet
oDa.Fill(oDs, "Clientes")
'Cargar la ComboBox Cliente con los datos
CMB_cliente.DataSource = oDs.Tables(0).DefaultView
'Mostrar el Nombre de la Empresa
CMBcliente.DataTextField = "ClienteNombre"
'Asignar al valor de la combo el código del cliente
CMBcliente.DataValueField = "ClienteCodigo"
CMBcliente.DataBind()
oConn.Close()
Return True
'Enlazado exitoso!
Else
Return False
'Enlazado fallido!
End IfCatch ex As Exception
'Aqui va el código que controle la excepciónEnd Function
End Try
NOTA: La planilla de Excel debe tener para este ejemplo el siguiente formato:
ClienteNombre ClienteCodigo Juan
Perez112244 Claudia
Sosa3355766
No hay comentarios:
Publicar un comentario