Te envió un ejemplo que utilizo.
IF pFile = 'XLS' THEN
*cCadenaConexion = "Driver={Microsoft Excel Driver (*.xls)}; DriverId=790;Dbq="+lcArchivoMDB+";DefaultDir="+Justpath(lcArchivoMDB)+";"
lcXLS = pRutaFile
TEXT TO m.lcConn NOSHOW PRETEXT 15 TEXTMERGE
DRIVER=Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb);
UID=admin;
FIL=excel 12.0;
DriverId=1046;
DefaultDir=<<JustPath(m.lcXLS)>>;
DBQ=<<m.lcXLS>>
ENDTEXT
lnHandle = SQLStringConnect(m.lcConn)
IF lnHandle > 0
IF SQLTables(m.lnHandle,"", "SheetNames") > 0
Scan
lcTableName = ALLTRIM(Trim(SheetNames.Table_Name))
*lcOutput = Chrtran(m.lcTableName,' $','_')
*SQLExec(lnHandle,'select * from ['+m.lcTableName+']',m.lcOutput )
SQLExec(lnHandle,'select * from ['+m.lcTableName+']',"cImport" )
endscan
SQLDisconnect(lnHandle)
ELSE
**** Manejo de Errores
IF AERROR(laError) > 0
Messagebox("Error al obtener entidades:"+laError[2])
ELSE
Messagebox("Error inesperado al obtener entidades...")
ENDIF
ENDIF
ELSE
IF AERROR(laError) > 0
Messagebox("Error al intentar conectar:"+laError[2])
ELSE
MESSAGEBOX("Error inesperado al intentar conectar")
Endif
Endif
ENDIF