Te doy un ejemplo como yo lo hago, no se si eso es lo que necesitas..
Saludos
Saul
PRIVATE lcTextFile
lcTextFile = ''
xD = SYS(5)
lcTextFile = xd+"\Aperson\Enlaces\Sistemas\Excel\Informe_Financiero.xls"
crutinaerroractual = ON("Error")
lhuboerror = .F.
ON ERROR LHUBOERROR = .T.
oexcel = CREATEOBJECT("Excel.Application")
ON Error &cRutinaErrorActual
IF lhuboerror
nresp = MESSAGEBOX( ;
"¿Desea generar una lista sin formato?", ;
35, ;
"Excel NO esta instalado en esta computadora." ;
)
IF nresp = 6
generacsv()
ENDIF
ELSE
generahojaelectronica()
ENDIF
RETURN
ENDPROC
**Genera un Hoja
PROCEDURE GeneraCSV
carchivo = GETFILE("Hoja excel:XLS", "Libro de compras.", "Grabar", 0)
IF EMPTY(carchivo)
= MESSAGEBOX("Debe seleccionar un nombre de archivo.", 64, "Error")
ELSE
COPY TO (carchivo) TYPE XLS
= MESSAGEBOX("El archivo fue grabado satisfactoriamente", 0, "")
ENDIF
ENDPROC
**
PROCEDURE GeneraHojaElectronica
WAIT WINDOW NOCLEAR NOWAIT "Generando Libro Excel, Espere un momento por favor."
*oexcel.workbooks.add()
oexcel.workbooks.Open(lcTextFile,,.t.)
**DATOS PARA LA HOJA NUMERO 1 ACUERDO
WITH oexcel.worksheets(1)
WAIT WINDOW NOCLEAR NOWAIT "Generando Hoja No. 2 Acuerdo, Un momento por favor."
**Barre toda la Tabla
SELECT _CurTotActivos
GOTO TOP
j = 8 &&Linea Inicial
SCAN ALL
cj = ALLTRIM(STR(j, 10, 0))
.range("B" + cj).value = codigo_bc
.range("C" + cj).value = Nombre_bc
.range("D" + cj).value = Nombre_com
.range("E" + cj).value = Integrantes
.range("F" + cj).value = Ciclo_dci
.range("G" + cj).value = Fechaini_dci
.range("H" + cj).value = FechaFin_dci
.range("I" + cj).value = Cartera_ceside
.range("J" + cj).value = Cartera_Banco
*-Calculos
.range("L" + cj).value = "=REDONDEAR(K" + cj + "/I" + cj + ",2)"
.range("M" + cj).value = "=REDONDEAR(J" + cj + "/K" + cj + ",2)"
.range("N" + cj).value = "=K" + cj + "-J" + cj
.range("P" + cj).value = "=O" + cj + "-N" + cj
.range("Q" + cj).value = "=REDONDEAR(I" + cj + "* 0.25" + ",2)"
.range("R" + cj).value = "=REDONDEAR((I" + cj + "* 0.25) * 0.67" + ",2)"
j = j + 2
SELECT _CurTotActivos
ENDSCAN
ENDWITH
******************FINAL ACUERDO********************
oexcel.visible = .T.
RELEASE oexcel
WAIT CLEAR
= MESSAGEBOX("La hoja fue generada satisfactoriamente.", 0, "")
ENDPROC
**