Page 1 of 1

EXCEL

Posted: Fri Feb 19, 2021 7:42 am
by SALINETAS24
Hola a todos.
¿hay alguna forma de detectar si EXCEL está instalado en el equipo..?
Este es el código que utilizo para inicializar la excel, pero casualmente lo he ejecutado en un equipo sin EXCEL y da un error "garrafal", sería bueno detectar antes si la aplicación esta correctamente instalada

Code: Select all

		oExcel = CREATEObject( "Excel.ApplicatiOn" ) && llama a  excel
		oExcel:WorkBooks:Add() && crea archivo
		oSheet = oExcel:ActiveSheet && crea hoja

Muy agradecido...

Re: EXCEL

Posted: Fri Feb 19, 2021 8:21 am
by bpd2000

Re: EXCEL

Posted: Fri Feb 19, 2021 8:22 am
by nekbmm

Code: Select all

 IF ( oExcel := win_oleCreateObject( "Excel.Application" ) ) != NIL
      oExcel:Visible := .T.
      oBook  := oExcel:workbooks:Open(hb_curdrive() + ':\'+CurDir()+"\RH TABELE (5).xls")
      oSheet := oBook:Sheets(9):select
      oSheet := oBook:ActiveSheet
   Else
      MsgStop("Ne postoji Excel - instaliraj ga !", "Poruka")
      Return
   Endif

Re: EXCEL

Posted: Fri Feb 19, 2021 4:27 pm
by Claudio Ricardo
Hola...
Basado en el código de Nekbmm hice una función para agregar a la colección y ponerla
al comienzo de un programa (que necesite Excel) advirtiendo al usuario.

Code: Select all

/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Función ExcelExists () Comprueba si MsOffice Excel está instalado en el sistema (retorna .T.)
// Thanks to Nekbmm from Serbia and HMG Forum

Function ExcelExists

Return Iif ( oExcel := Win_OleCreateObject ( "Excel.Application" ) = Nil , .F. , .T.)
En el modulo main.prg:

Code: Select all

	If ! ExcelExists ()
	
		MsgStop ("Para el correcto funcionamiento de esta aplicación" + CRLF +;
				"deberá instalar previamente MsOffice Excel !" , "Atención !")
		
	EndIf