Leer nombre hojas excel

28/07/2005 - 10:28 por Antonio | Informe spam
Buenas.
Necesito recorrer las hojas que un libro excel para
comprobar su nombre y hacer determinados calculos
dependiendo de la hoja en cuestion. El siguiente codigo
funciona, pero NO FUNCIONA


'Abre el Excel para ejecutar el fichero.
Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set book = xl.WorkBooks.open(Server.MapPath("./Temp/")
+ "\" + fichero)

'Abra que buscar primero la hoja por su nombre para
evitar problemas
'ERROR: Indica que no es un objeto de la colección
for each ws in book.worksheets
Response.Write "Nombre de la hoja: " & ws.name & " "
next

Preguntas similare

Leer las respuestas

#1 Pantxo
28/07/2005 - 12:03 | Informe spam
A mí me funciona sin problemas.
Algunos apuntes:

xl.Visible=True No puedes hacer visible la aplicación, recuerda que se está
ejecutando en el servidor.

Server.MapPath("./Temp/") + "\" + fichero Entiendo que el libro Excel
está en la carpeta Temp dentro de la actual: Server.MapPath("Temp/" &
fichero)

Asegúrate de salir del Excel al finalizar el proceso, de otra forma se
quedará arrancado en el servidor:
xl.Quit
Set xl=Nothing

Si puedes darnos más datos quizás podamos ayudarte.

Un saludo

Pantxo

"Antonio" escribió en el mensaje
news:038201c5934e$53406b30$
Buenas.
Necesito recorrer las hojas que un libro excel para
comprobar su nombre y hacer determinados calculos
dependiendo de la hoja en cuestion. El siguiente codigo
funciona, pero NO FUNCIONA


'Abre el Excel para ejecutar el fichero.
Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set book = xl.WorkBooks.open(Server.MapPath("./Temp/")
+ "\" + fichero)

'Abra que buscar primero la hoja por su nombre para
evitar problemas
'ERROR: Indica que no es un objeto de la colección
for each ws in book.worksheets
Response.Write "Nombre de la hoja: " & ws.name & " "
next
Respuesta Responder a este mensaje
#2 Antonio
28/07/2005 - 14:30 | Informe spam
Perdon, pero lo envié sin terminar de comentar el tema.

'Abre el Excel para ejecutar el fichero.
Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set book = xl.WorkBooks.open(Server.MapPath("./Temp/") +
"\" + fichero)
'******************* ERROR AQUÍ ********************
'Abrá que buscar primero la hoja por su nombre para
evitar problemas
'ERROR: Indica que no es un objeto de la colección
for each ws in book.worksheets
Response.Write "Nombre de la hoja: " & ws.name & " "
next
'***************************************************
'Activamos el sheet del fichero Excel.
Set sheet = book.worksheets(1)
sheet.Activate

En la parte donde recorro las hojas me casca, me dice que
no es un elemento de la colección, y necesito saber el
nombre de cada hoja como comentaba.

Mas adelante elimino el objeto excel sin problemas y el
fichero del directorio temporal.


Salu2






A mí me funciona sin problemas.
Algunos apuntes:

xl.Visible=True No puedes hacer visible la aplicación,


recuerda que se está
ejecutando en el servidor.

Server.MapPath("./Temp/") + "\" + fichero Entiendo


que el libro Excel
está en la carpeta Temp dentro de la actual:


Server.MapPath("Temp/" &
fichero)

Asegúrate de salir del Excel al finalizar el proceso, de


otra forma se
quedará arrancado en el servidor:
xl.Quit
Set xl=Nothing

Si puedes darnos más datos quizás podamos ayudarte.

Un saludo

Pantxo

"Antonio" escribió


en el mensaje
news:038201c5934e$53406b30$
Buenas.
Necesito recorrer las hojas que un libro excel para
comprobar su nombre y hacer determinados calculos
dependiendo de la hoja en cuestion. El siguiente codigo
funciona, pero NO FUNCIONA


'Abre el Excel para ejecutar el fichero.
Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set book = xl.WorkBooks.open(Server.MapPath("./Temp/")
+ "\" + fichero)

'Abra que buscar primero la hoja por su nombre para
evitar problemas
'ERROR: Indica que no es un objeto de la colección
for each ws in book.worksheets
Response.Write "Nombre de la hoja: " & ws.name & " "
next


.

Respuesta Responder a este mensaje
#3 Pantxo
28/07/2005 - 16:34 | Informe spam
Pues no sé, a mi me funciona sin problemas.

"Antonio" escribió en el mensaje
news:03be01c59370$15702b20$
Perdon, pero lo envié sin terminar de comentar el tema.

'Abre el Excel para ejecutar el fichero.
Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set book = xl.WorkBooks.open(Server.MapPath("./Temp/") +
"\" + fichero)
'******************* ERROR AQUÍ ********************
'Abrá que buscar primero la hoja por su nombre para
evitar problemas
'ERROR: Indica que no es un objeto de la colección
for each ws in book.worksheets
Response.Write "Nombre de la hoja: " & ws.name & " "
next
'***************************************************
'Activamos el sheet del fichero Excel.
Set sheet = book.worksheets(1)
sheet.Activate

En la parte donde recorro las hojas me casca, me dice que
no es un elemento de la colección, y necesito saber el
nombre de cada hoja como comentaba.

Mas adelante elimino el objeto excel sin problemas y el
fichero del directorio temporal.


Salu2






A mí me funciona sin problemas.
Algunos apuntes:

xl.Visible=True No puedes hacer visible la aplicación,


recuerda que se está
ejecutando en el servidor.

Server.MapPath("./Temp/") + "\" + fichero Entiendo


que el libro Excel
está en la carpeta Temp dentro de la actual:


Server.MapPath("Temp/" &
fichero)

Asegúrate de salir del Excel al finalizar el proceso, de


otra forma se
quedará arrancado en el servidor:
xl.Quit
Set xl=Nothing

Si puedes darnos más datos quizás podamos ayudarte.

Un saludo

Pantxo

"Antonio" escribió


en el mensaje
news:038201c5934e$53406b30$
Buenas.
Necesito recorrer las hojas que un libro excel para
comprobar su nombre y hacer determinados calculos
dependiendo de la hoja en cuestion. El siguiente codigo
funciona, pero NO FUNCIONA


'Abre el Excel para ejecutar el fichero.
Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set book = xl.WorkBooks.open(Server.MapPath("./Temp/")
+ "\" + fichero)

'Abra que buscar primero la hoja por su nombre para
evitar problemas
'ERROR: Indica que no es un objeto de la colección
for each ws in book.worksheets
Response.Write "Nombre de la hoja: " & ws.name & " "
next


.

Respuesta Responder a este mensaje
#4 Antonio
29/07/2005 - 11:41 | Informe spam
Hola.

Realmente los has probado.
A mi me casca siempre al recorrer la colección

Salu2


Pues no sé, a mi me funciona sin problemas.

"Antonio" escribió


en el mensaje
news:03be01c59370$15702b20$
Perdon, pero lo envié sin terminar de comentar el tema.

'Abre el Excel para ejecutar el fichero.
Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set book = xl.WorkBooks.open(Server.MapPath("./Temp/") +
"\" + fichero)
'******************* ERROR AQUÍ ********************
'Abrá que buscar primero la hoja por su nombre para
evitar problemas
'ERROR: Indica que no es un objeto de la colección
for each ws in book.worksheets
Response.Write "Nombre de la hoja: " & ws.name & " "
next
'***************************************************
'Activamos el sheet del fichero Excel.
Set sheet = book.worksheets(1)
sheet.Activate

En la parte donde recorro las hojas me casca, me dice que
no es un elemento de la colección, y necesito saber el
nombre de cada hoja como comentaba.

Mas adelante elimino el objeto excel sin problemas y el
fichero del directorio temporal.


Salu2






A mí me funciona sin problemas.
Algunos apuntes:

xl.Visible=True No puedes hacer visible la aplicación,


recuerda que se está
ejecutando en el servidor.

Server.MapPath("./Temp/") + "\" + fichero Entiendo


que el libro Excel
está en la carpeta Temp dentro de la actual:


Server.MapPath("Temp/" &
fichero)

Asegúrate de salir del Excel al finalizar el proceso, de


otra forma se
quedará arrancado en el servidor:
xl.Quit
Set xl=Nothing

Si puedes darnos más datos quizás podamos ayudarte.

Un saludo

Pantxo

"Antonio" escribió


en el mensaje
news:038201c5934e$53406b30$
Buenas.
Necesito recorrer las hojas que un libro excel para
comprobar su nombre y hacer determinados calculos
dependiendo de la hoja en cuestion. El siguiente codigo
funciona, pero NO FUNCIONA


'Abre el Excel para ejecutar el fichero.
Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set book = xl.WorkBooks.open(Server.MapPath("./Temp/")
+ "\" + fichero)

'Abra que buscar primero la hoja por su nombre para
evitar problemas
'ERROR: Indica que no es un objeto de la colección
for each ws in book.worksheets
Response.Write "Nombre de la hoja: " & ws.name & " "
next


.





.

Respuesta Responder a este mensaje
#5 Pantxo
29/07/2005 - 12:09 | Informe spam
Sí, he hecho la prueba incluso con libros con hojas de gráficos, de
formularios, incluso de macros y me funciona bien. El bucle me recorre y me
saca los nombres de las hojas de cálculo. Si no hay ninguna hoja de cálculo
en el libro la colección worksheets está vacía por lo que me da un error
depués (Set sheet = book.worksheets(1)) al intentar acceder a un elemento
que no existe, pero el bucle lo pasa sin problemas.

Yo lo que suelo hacer en estos casos es probarlo desde una aplicación de
Visual Basic para poder hacer el Excel visible y depurarlo paso a paso para
detectar el error.

Podría ser también que sea un problema de permisos y el usuario del IIS no
tenga permisos para iniciar el Excel o para abrir el libro, aunque supongo
que el error lo daría antes. Podías probar a recorrer primero la colección
workbooks para asegurarte de que el Excel ha abierto el archivo
correctamente.

Tienes que tener en cuenta también que cada vez que te da un error el ASP se
detiene la ejecución por lo que el objeto Excel se queda en memoria sin
descargarse y con el archivo abierto. Al tratar de abrir el archivo de nuevo
cuando ya está abierto por otro proceso te puede dar problemas. Si tienes la
posibilidad abre el Administrador de tareas del servidor y comprueba si
quedan procesos del Excel sin finalizar.

Un saludo

Pantxo

"Antonio" escribió en el mensaje
news:01cb01c59421$c271b2b0$
Hola.

Realmente los has probado.
A mi me casca siempre al recorrer la colección

Salu2


Pues no sé, a mi me funciona sin problemas.

"Antonio" escribió


en el mensaje
news:03be01c59370$15702b20$
Perdon, pero lo envié sin terminar de comentar el tema.

'Abre el Excel para ejecutar el fichero.
Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set book = xl.WorkBooks.open(Server.MapPath("./Temp/") +
"\" + fichero)
'******************* ERROR AQUÍ ********************
'Abrá que buscar primero la hoja por su nombre para
evitar problemas
'ERROR: Indica que no es un objeto de la colección
for each ws in book.worksheets
Response.Write "Nombre de la hoja: " & ws.name & " "
next
'***************************************************
'Activamos el sheet del fichero Excel.
Set sheet = book.worksheets(1)
sheet.Activate

En la parte donde recorro las hojas me casca, me dice que
no es un elemento de la colección, y necesito saber el
nombre de cada hoja como comentaba.

Mas adelante elimino el objeto excel sin problemas y el
fichero del directorio temporal.


Salu2






A mí me funciona sin problemas.
Algunos apuntes:

xl.Visible=True No puedes hacer visible la aplicación,


recuerda que se está
ejecutando en el servidor.

Server.MapPath("./Temp/") + "\" + fichero Entiendo


que el libro Excel
está en la carpeta Temp dentro de la actual:


Server.MapPath("Temp/" &
fichero)

Asegúrate de salir del Excel al finalizar el proceso, de


otra forma se
quedará arrancado en el servidor:
xl.Quit
Set xl=Nothing

Si puedes darnos más datos quizás podamos ayudarte.

Un saludo

Pantxo

"Antonio" escribió


en el mensaje
news:038201c5934e$53406b30$
Buenas.
Necesito recorrer las hojas que un libro excel para
comprobar su nombre y hacer determinados calculos
dependiendo de la hoja en cuestion. El siguiente codigo
funciona, pero NO FUNCIONA


'Abre el Excel para ejecutar el fichero.
Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set book = xl.WorkBooks.open(Server.MapPath("./Temp/")
+ "\" + fichero)

'Abra que buscar primero la hoja por su nombre para
evitar problemas
'ERROR: Indica que no es un objeto de la colección
for each ws in book.worksheets
Response.Write "Nombre de la hoja: " & ws.name & " "
next


.





.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida