Lo que yo hago es mandar la planilla a un PRG general de mi aplicacion, que la convierte a formato 5.0 para luego poder manejarla con el fvp
PARAMETERS TCPLANILLA1, TCPLANILLA2
*se invoca pasando la planilla original, y opcional el nuevo nombre a dar, sino asume dtoc(date(),1)
* do programa\general\excel5 with lcfile, 'otronombre'
IF EMPTY(TCPLANILLA1)
MESSAGEBOX('FALTA INDICA CUAL ES LA PLANILLA A CONVERTIR',16,'CANCELADO')
RETURN
ENDIF
IF !FILE(TCPLANILLA1)
MESSAGEBOX('NO ENCUENTRA LA PLANILLA A CONVERTIR ' + TCPLANILLA1,16,'CANCELADO')
RETURN
ENDIF
WAIT WINDOW NOWAIT 'CAMBIANDO FORMATO DE PLANILLA '+CHR(13)+TCPLANILLA1
IF EMPTY(TCPLANILLA2)
TCPLANILLA2 = 'SALIDA' + DTOC(DATE(),1)
ENDIF
GCDIREXCEL = ADDBS(GCDIREXCEL) && carpeta general para las planillas excel
TCPLANILLA2 = GCDIREXCEL + ALLTRIM(TCPLANILLA2)+'.XLS'
IF FILE(TCPLANILLA2)
DELETE FILE (TCPLANILLA2)
ENDIF
LOCAL LNFORMATO
TRY
oleapp = createobject('excel.application')
with oleapp
.visible = .F.
.Workbooks.open(TCPLANILLA1)
LNFORMATO = .ActiveWorkbook.FILEFORMAT
.DISPLAYALERTS = .F.
_xlExcel5 = 39
.Sheets(1).Name = "PRINCIPAL"
.Sheets("PRINCIPAL").Select
.ActiveWorkbook.SaveAs(TCPLANILLA2, 39 , "", "", .f., .f.)
.ActiveWorkbook.CLOSE
.QUIT
ENDWITH
rele oleApp
CATCH TO LOERROR
MESSAGEBOX('PROBLEMAS EN MANIPULAR LA PLANILLA '+TCPLANILLA1;
+CHR(13)+'Intentando convertirla en '+TCPLANILLA2;
+CHR(13)+LOERROR.MESSAGE;
,16,'ATENCION')
ENDTRY
WAIT CLEAR
RETURN
Espero te sea de utilidad.