Artículos
ASP

Leer de un Excel con ASP

03/Sep/2009

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.

Set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open "DBQ=" & Server.MapPath("Libro1.xls") 
   & ";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

Dim columnas
columnas = rs.Fields.Count

Do While Not rstExcel.EOF

  For I=0 to columnas - 1
    Response.Write rs.Fields.Item(I).Value
  Next I

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.

Response.Write rs.Fields.Item(I).Value
Response.Write rs.Fields.Item(I).Name
Suscribir
Notificar de
guest
7 Comentarios
Recientes
Anteriores Más votados
Opiniones integradas
Ver todos los comentarios