LECTURA DE ARCHIVO EXCEL CON ASP
NECESITO LEER UN ARCHIVO DE EXCEL PARA PODER MOSTRAR LOS DATOS EN UNA TABLA EN UNA PAGINA WEB.
POR FAVOR CUALQUIER AYUDA SERA AGRADECIDA.
POR FAVOR CUALQUIER AYUDA SERA AGRADECIDA.
'Asigna a la variable Path, la ruta del archivo *.xls
Path=Server.MapPath("Ejercicio1.xls")
'Establece una conexión entre el servidor asp y una base de datos
Set ConexionBD = Server.CreateObject("ADODB.Connection")
'Abrimos el objeto con el driver específico para Microsoft Excel
ConexionBD.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & Path
'Crea un objeto de tipo recordset para retornar la consulta sql
Set rsVac = Server.CreateObject("ADODB.Recordset")
'Se abre el recordset, señalando como tabla el rango de celdas Excel llamado Feriado.
rsVac.Open "Select * From Feriado order by Oficina, Nombre", ConexionBD,3,3
Como pueden observar, básicamente el código es el mismo que utilizamos para conectarnos con Access. Las principales diferencias son dos:
Para abrir la conexión con la base de datos utilizamos el Driver específico para Microsoft Excel.
Al abrir el recordset, en la sentencia SQL hacemos referencia al nombre de un rango de celdas de Excel, en vez de referirnos a una tabla específica de Access. Para asignar un nombre a un rango de celdas, en MSExcel debemos seleccionar el menú Insertar, la opción Nombre y la subopción Definir. Luego, asignamos el nombre Feriado al rango y por último, en la casilla "Se refiere a:" seleccionamos el rango =FERIADO!$A$1:$G$6. Ahora, si este procedimiento no nos parece muy claro, podemos reemplazar el nombre Feriado de la consulta SQL por el rango a utilizar. En nuestro ejemplo, nos quedaría así:
'Se abre el recordset, señalando como tabla el rango de celdas Excel llamado Feriado.
rsVac.Open "Select * From A1:G6 order by Oficina, Nombre", ConexionBD,3,3
Una vez que hemos creado el objeto recordset, no nos queda más que comenzar a utilizarlo exactamente igual que si se tratara de datos Access. Por ejemplo, para mostrar en una tabla el contenido de algunos campos del recordset, bastaría que utilizáramos el siguiente código:
'Nos posicionamos al principio del recordset, por cualquier cosa
rsVac.MoveFirst
'Y por fin comenzamos a escribir la tabla de resultados
'Primero los nombres de las columnas (el encabezado de la tabla)
Response.Write "<th>" & rsVac.Fields.Item(0).Name & "</th>" & vbCrLf
Response.Write "<th>" & rsVac.Fields.Item(1).Name & "</th>" & vbCrLf
Response.Write "<th>" & rsVac.Fields.Item(6).Name & "</th>" & vbCrLf
'Y por último, el cuerpo de los datos
Do While Not rsVac.EOF
Response.Write "<tr>" & vbCrLf
Response.Write "<td>" & rsVac(0) & "</td>"
Response.Write "<td>" & rsVac(1) & "</td>"
Response.Write "<td>" & rsVac(6) & "</td>"
Response.Write "</tr>" & vbCrLf
rsVac.MoveNext
Loop
Response.Write "</table>"
'Se cierra y se destruye el objeto recordset
rsVac.Close
Set rsVac = Nothing
'Se cierra y se destruye el objeto connection
ConexionBD.Close
Set ConexionBD = Nothing
Path=Server.MapPath("Ejercicio1.xls")
'Establece una conexión entre el servidor asp y una base de datos
Set ConexionBD = Server.CreateObject("ADODB.Connection")
'Abrimos el objeto con el driver específico para Microsoft Excel
ConexionBD.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & Path
'Crea un objeto de tipo recordset para retornar la consulta sql
Set rsVac = Server.CreateObject("ADODB.Recordset")
'Se abre el recordset, señalando como tabla el rango de celdas Excel llamado Feriado.
rsVac.Open "Select * From Feriado order by Oficina, Nombre", ConexionBD,3,3
Como pueden observar, básicamente el código es el mismo que utilizamos para conectarnos con Access. Las principales diferencias son dos:
Para abrir la conexión con la base de datos utilizamos el Driver específico para Microsoft Excel.
Al abrir el recordset, en la sentencia SQL hacemos referencia al nombre de un rango de celdas de Excel, en vez de referirnos a una tabla específica de Access. Para asignar un nombre a un rango de celdas, en MSExcel debemos seleccionar el menú Insertar, la opción Nombre y la subopción Definir. Luego, asignamos el nombre Feriado al rango y por último, en la casilla "Se refiere a:" seleccionamos el rango =FERIADO!$A$1:$G$6. Ahora, si este procedimiento no nos parece muy claro, podemos reemplazar el nombre Feriado de la consulta SQL por el rango a utilizar. En nuestro ejemplo, nos quedaría así:
'Se abre el recordset, señalando como tabla el rango de celdas Excel llamado Feriado.
rsVac.Open "Select * From A1:G6 order by Oficina, Nombre", ConexionBD,3,3
Una vez que hemos creado el objeto recordset, no nos queda más que comenzar a utilizarlo exactamente igual que si se tratara de datos Access. Por ejemplo, para mostrar en una tabla el contenido de algunos campos del recordset, bastaría que utilizáramos el siguiente código:
'Nos posicionamos al principio del recordset, por cualquier cosa
rsVac.MoveFirst
'Y por fin comenzamos a escribir la tabla de resultados
'Primero los nombres de las columnas (el encabezado de la tabla)
Response.Write "<th>" & rsVac.Fields.Item(0).Name & "</th>" & vbCrLf
Response.Write "<th>" & rsVac.Fields.Item(1).Name & "</th>" & vbCrLf
Response.Write "<th>" & rsVac.Fields.Item(6).Name & "</th>" & vbCrLf
'Y por último, el cuerpo de los datos
Do While Not rsVac.EOF
Response.Write "<tr>" & vbCrLf
Response.Write "<td>" & rsVac(0) & "</td>"
Response.Write "<td>" & rsVac(1) & "</td>"
Response.Write "<td>" & rsVac(6) & "</td>"
Response.Write "</tr>" & vbCrLf
rsVac.MoveNext
Loop
Response.Write "</table>"
'Se cierra y se destruye el objeto recordset
rsVac.Close
Set rsVac = Nothing
'Se cierra y se destruye el objeto connection
ConexionBD.Close
Set ConexionBD = Nothing