Leer de un Excel con ASP

03/Sep/2009 ASP , , , , , , 7 Comentarios

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

7 comentarios en “Leer de un Excel con ASP”

Víctor Cuervo

pagina de anuncios

Su texto es bien escrito

Víctor Cuervo

Víctor Cuervo

@maría,

¿Qué te falla del código? Te recomendaría que lo dieses de alta en el foro de ASP
http://www.dudasprogramacion.com/forum/active-server-pages-asp

Así podremos ayudarte más.

Víctor Cuervo

maria

Hola, no me funciona el codigo, necesito ayuda, porque esta en riesgo mi trabajo. Gracias

Víctor Cuervo

lineadecodigo

Prueba a poner toda la sentencia en una fila.

De la siguiente manera:

DB_CONNECTIONSTRING = “Driver={Microsoft Excel Driver (*.xls)};Dbq=” & Server.MapPath(“SegTutorLauraQuezada.xls”) & “;”

También puedes pedir ayuda en nuestros foros.
http://www.dudasprogramacion.com/forum/active-server-pages-asp

Víctor Cuervo

Yazmin

Me envía este mensaje de error:
Información técnica (para personal de soporte técnico)

Tipo de error:
Microsoft VBScript compilation (0x800A0400)
Expected statement
/site/LeerExcel.asp, línea 20
& Server.MapPath(“SegTutorLauraQuezada.xls”) & “;”

Tipo de explorador:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

Página:
GET /site/LeerExcel.asp

Víctor Cuervo

Yazmin

Hola, ya inserte el código en mi pagina ASP, pero no me muestra los campos de la hoja de excel, por favorme pueden decir que mas me hace falta???

Gracias

Yazmin

Víctor Cuervo

orlando

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

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*