jump to navigation

Leer de un Excel con ASP Septiembre 3, 2009

Publicado por lineadecodigo en : ASP , trackback

Desde nuestra aplicación ASP vamos a poder acceder a una hoja Excel para leer su contenido.

Para realizar el acceso a la hoja de Excel vamos a utilizar el modelo de acceso a datos ADO (Access Data Objet), de igual forma que si estubieramos realizando una consulta sobre una base de datos Access.

Para ello lo primero que hay que hacer es dar un nombre al rango de registros que queremos mostrar en nuestra aplicación. Seleccionamos los registros a mostrar:

excel1

En el menú "Insertar – Nombre – Definir …". Damos un nombre a nuestro rango de datos. Estamos simulando la creación de un RecordSet del modelo ADO.

excel2

En nuestro caso le damos el nombre "Alumnos" al rango de datos.

Para conectarnos a la hoja Excel deberemos de indicarle a la aplicación en la conexión que el DRIVER de acceso es el de Microsoft Excel y no el de Microsoft Access, el que utilizamos para las bases de datos.

  1. Set conexion = Server.CreateObject("ADODB.Connection")
  2. conexion.Open "DBQ=" & Server.MapPath("Libro1.xls")
  3. & ";DRIVER={Microsoft Excel Driver (*.xls)};"

A partir de este momento accederemos al rango de datos "Alumnos" como si fuese una tabla de una base de datos. Es decir, que tendremos los métodos MoveNext, MovePrevious, EOF, BOF,…..

Un pequeño problema es que nuestras columnas no tienen un nombre, como sucede en las bases de datos. Es por ello que no podremos poner rs("alumno"), sino que tendremos que ir columna por columna.

Para recorrer todas las columnas y mostrar sus valores

  1. Dim columnas
  2. columnas = rs.Fields.Count
  3.  
  4. Do While Not rstExcel.EOF
  5.  
  6. For I=0 to columnas - 1
  7. Response.Write rs.Fields.Item(I).Value
  8. Next I
  9.  
  10. Loop

Otra cosa que tenemos que tener en cuenta es el tipo de celda que tenemos. Si es una celda con un texto, lo que deberemos de mostrar de dicho campo es su nombre (name), mientras que si lo que queremos es mostrar su valor deberemos de usar value.

  1. Response.Write rs.Fields.Item(I).Value
  2. Response.Write rs.Fields.Item(I).Name

Articulos Similares:

|- Descargar el código
|- Reportar error en el código
|- Foro sobre ADO

Enviar entrada por email Enviar entrada por email | Imprimir Imprimir | 4307 visitas

1 Star2 Stars3 Stars4 Stars5 Stars (Todavia sin evaluar)
Loading ... Loading ...

Comentarios»

1. orlando - Enero 26, 2010

faltan lineas de codigo ? que hay con la signacion de rs y rsexcel ?




Si tienes dudas sobre ADO no dudes en visitar el Foro sobre ADO.
Imagen CAPTCHA CAPTCHA Audio
Refrescar imagen