Verificar si EXCEL esta instalado

HMG en Español

Moderator: Rathinagiri

User avatar
luisvasquezcl
Posts: 1258
Joined: Thu Jul 31, 2008 3:23 am
Location: Chile
Contact:

Re: Verificar si EXCEL esta instalado

Post by luisvasquezcl »

Hola Pepe,
Es raro el error de CreateObject()
Para probar porque no cambias la siguiente linea:

Local oExcel := TOleAuto():New('Excel.Application')

a ver que pasa ...
Si no te funciona creo que tienes problemas de instalación de HMG.
Favor verifica y te sigo.
Saludos cordiales,
Luis Vasquez.
User avatar
Pepe Ruano
Posts: 65
Joined: Fri Aug 16, 2013 11:31 am
DBs Used: DBF
Location: Almansa, Albacete - Spain
Contact:

Re: Verificar si EXCEL esta instalado

Post by Pepe Ruano »

luisvasquezcl wrote:Hola Pepe,
Es raro el error de CreateObject()
Para probar porque no cambias la siguiente linea:

Local oExcel := TOleAuto():New('Excel.Application')

a ver que pasa ...
Si no te funciona creo que tienes problemas de instalación de HMG.
Favor verifica y te sigo.
Saludos cordiales,
Luis Vasquez.
Hola Luis y gracias por tu sugerencia, pero no me funciona tampoco en equipos que no tienen instalado el Office ese es el problema y reporta el error que yá comenté :

Code: Select all

Date:20-11-15 Time: 20:27:18
Error TOleAuto/-1 : TOLEAUTO:NEW

Called from THROW(22)
Called from TOLEAUTO:NEW(110)
Called from COMPRUEBAEXCEL(541)
Called from MAIN(32) 
Para esta prueba he puesto lo siguiente:

Code: Select all

Procedure COMPRUEBAEXCEL()
Local oExcel := TOleAuto():New('Excel.Application')

   if Ole2TxtError() != "S_OK"
      MsgStop("Excel is not available - Error "+Ole2TxtError(), "Warning")
      return .F.
	else
		MSGINFO("Microsoft Excel está INSTALADO","PRUEBA DE OLE")
	  Return .T.
   endif
Retu Nil
Lo que me está funcionando es el código que puse en el anterior post comprobando la ruta del directorio y Excel, sólo tengo la duda porque no lo he podido probar en equipos de 64 bits y quisiera saberlo. Por supuesto como indico que no tengan el Office instalado, ya que si está instalado no da ningún error.

Gracias de nuevo Luis.
Saludos - Regards
Pepe Ruano
hmg.ruano.org
User avatar
luisvasquezcl
Posts: 1258
Joined: Thu Jul 31, 2008 3:23 am
Location: Chile
Contact:

Re: Verificar si EXCEL esta instalado

Post by luisvasquezcl »

Estimado,
Lamentablemente no tengo donde probar esta rutina ya que todos los pc tienen office.
Le dejo un ejemplo a ver si le funciona. En este caso si hay error lo captura y se muestra el tipo de error, su numero y termina la rutina volviendo desde donde fue llamada, por lo menos no se va a colgar la aplicación. Ojalá te pueda solucionar el problema.
Quedo atento a tu respuesta.

local bHandler := errorblock( { | x | break( x ) } )
local oExcel, oError
local lError := .F.
begin sequence
oExcel := TOleauto():New('Excel.Applicacion')
recover using oError
msginfo(hb_valtostr( oError:Description ) + "= "+ ;
hb_valtostr( oError:Operation )+HB_OSNEWLINE(),;
'Excel no existe' )
lError := .T.
end sequence

errorblock( bHandler )

if lError
return
endif

if Ole2TxtError() != "S_OK"
MsgStop("Excel is not available - Error "+Ole2TxtError(), "Warning")
return .F.
endif

/**** resto de tu rutina ****/
User avatar
Pepe Ruano
Posts: 65
Joined: Fri Aug 16, 2013 11:31 am
DBs Used: DBF
Location: Almansa, Albacete - Spain
Contact:

Re: Verificar si EXCEL esta instalado

Post by Pepe Ruano »

Hola de Nuevo Luis.

He probado tu rutina y efectivamente no se cuelga la aplicación.

Pero ahora siempre me dice que Excel no existe ejecutandolo en el equipo que si que existe. No me reconoce la existencia de Excel. siempre devuelve .F. ??
Puedes probar tu misma rutina.

Gracias.
Saludos - Regards
Pepe Ruano
hmg.ruano.org
User avatar
Pepe Ruano
Posts: 65
Joined: Fri Aug 16, 2013 11:31 am
DBs Used: DBF
Location: Almansa, Albacete - Spain
Contact:

Re: Verificar si EXCEL esta instalado

Post by Pepe Ruano »

Saludos Luis Vasquez.

Después de mi anterior comentario, he realizado varias pruebas y cambiado algo de código. Y ahora si que me funciona bien y me dice correctamente si está instalado Excel o no. Probado en un equipo con Office y Excel y otro Sin Office y por supuesto sin Excel y responde correctamente y no se cuelga.

Este es código final que he puesto:

Code: Select all

*-----------------------------------------------------------------------------*
Procedure COMPRUEBAEXCEL()	// COMPRUEBA SI TENEMOS EXCEL INSTALADO
*-----------------------------------------------------------------------------*
local bHandler := errorblock( { | x | break( x ) } )
local oExcel, oError
local lError := .F.
begin sequence
oExcel :=CreateObject("Excel.Application") 
recover using oError
lError := .T.
end sequence

IF lError == .T.
   		MsgStop("Excel No está Disponible en este Equipo","Comprobar Excel")
	ELSE
		MsgInfo("Excel está Disponible en este Equipo","Comprobar Excel")
ENDIF	

errorblock( bHandler )

IF lError
return .F.
ENDIF

IF Ole2TxtError() != "S_OK"
	return .F.
ELSE
	return .T.
ENDIF
	
Retu lError
*-----------------------------------------------------------------------------*
Por favor se veis algo incorrecto, me lo haces saber pero está funcionando correctamente como yo quería, saber si puede ejecutar Excel o no y que devolviera el valor de Falso o Verdadero y ahora si que lo hace.

Muchas gracias por tu ayuda. ;-)
Saludos - Regards
Pepe Ruano
hmg.ruano.org
User avatar
luisvasquezcl
Posts: 1258
Joined: Thu Jul 31, 2008 3:23 am
Location: Chile
Contact:

Re: Verificar si EXCEL esta instalado

Post by luisvasquezcl »

Hola Pepe,
Tu còdigo està correcto, yo no le harìa nada ya que està funcionando bien.
Te comento que los codigos que te pasè los uso en distintos programas y funcionan bien, incluso probados en windows xp, 8 y 10 de 32 bits, por eso me parece raro que hayas tenido problemas, pero si ya lo solucionaste, felicidades. Un problema menos con que lidiar 8).
Bueno, estamos en contacto.
Saludos desde Chile,
Luis Vàsquez.
User avatar
Pepe Ruano
Posts: 65
Joined: Fri Aug 16, 2013 11:31 am
DBs Used: DBF
Location: Almansa, Albacete - Spain
Contact:

Re: Verificar si EXCEL esta instalado

Post by Pepe Ruano »

Gracias a todos.

Me encanta este foro y ver como desinteresadamente todos los que más saben (gurus) y grandes profesionales en HMG y xbase, nos aportan sus conocimientos para que todos los que menos sabemos aprendamos más y nos ofrezcan sus códigos y experiencias personales, que seguro les habrá costado a lo largo del tiempo y lo aporten y compartan con todos.

¡ VIVA HMG CON ROBERTO LOPEZ Y TODOS LOS GRANDES MAESTROS QUE ESTAIS MANTENIENDO ESTE GRAN PROYECTO !
P.D.
No puedo nombrar a todos porque hay muchos que siempre estáis contribuyendo constantemente, la verdad es que es maravilloso que estéis tantos grandes expertos aportando vuestros conocimientos y ayuda en general para todos. -- ¡ FELICIDADES A TODOS ! --

VIVA HMG ;) ;) ;) ;) ;)

English translator by Google :-( Sorry
Thanks to all.
I love this forum and see how selflessly all the know (gurus) and great professionals in HMG and xbase, we bring knowledge to all who know unless we learn more and offer their personal experiences and codes, which secure them it must have cost over time and contribute and share with everyone.
CONGRATULATIONS TO ROBERTO LOPEZ PROJECT BY HMG GREAT MASTERS AND ALL THAT YOU ARE MAINTAINING this great project!
P.S.
I can not name them all because there are many who constantly contributing're always, the truth is it's wonderful that so many leading experts ye your knowledge and providing general assistance to all. -- CONGRATULATIONS TO ALL ! -
VIVA HMG ;) ;) ;) ;) ;)
Saludos - Regards
Pepe Ruano
hmg.ruano.org
User avatar
serge_girard
Posts: 3169
Joined: Sun Nov 25, 2012 2:44 pm
DBs Used: 1 MySQL - MariaDB
2 DBF
Location: Belgium
Contact:

Re: Verificar si EXCEL esta instalado

Post by serge_girard »

+1 !!!!

Serge
There's nothing you can do that can't be done...
User avatar
esgici
Posts: 4543
Joined: Wed Jul 30, 2008 9:17 pm
DBs Used: DBF
Location: iskenderun / Turkiye
Contact:

Re: Verificar si EXCEL esta instalado

Post by esgici »

+1

Viva HMG :D
Viva INTERNATIONAL HMG :D
User avatar
ndarz
Posts: 56
Joined: Thu Apr 23, 2015 12:29 pm
Location: Argentina

Re: Verificar si EXCEL esta instalado

Post by ndarz »

Se que este hilo es algo viejo, desde ya voy a probarlos y queria aportar algo a estas exelentes respuestas, cuando quiero probar algun codigo como este que es necesario tener o no instalado tal o cual programa o version del mismo lo que hago es hacer uso de una maquina virtual que en este tiempo es tal facil hacer y poder contar con distintas plataformas a probar.

Muchas gracias a todos por su dedicacion y tiempo hacia los demas.
Post Reply