He intentado lo que me has puesto y lo unico que ha hecho es no poner el mensaje de error pero el formatosigue siendo XLSX con extensión XLS. Aqui os pongo como hago el archivo:
Code: Select all
SELECT 51
oExcel1 := TOleAuto():New( "Excel.Application" )
oWorkBook:=oExcel1:WorkBooks:Add()
oHoja1 := oExcel1:Get( "ActiveSheet" )
oHoja1:Cells:Font:Name := "Arial"
oHoja1:Cells:Font:Size := 10
oHoja1:Cells(1, 1):Font:Bold := .T.
oHoja1:Cells(1, 1):Value := "FIRMA_NUM_REG"
oHoja1:Cells(1, 2):Font:Bold := .T.
oHoja1:Cells(1, 2):Value := "SEGMENTO"
oHoja1:Cells(1, 3):Font:Bold := .T.
if opc = 1
oHoja1:Cells(1, 3):Value := "PERIODO"
else
oHoja1:Cells(1, 3):Value := "AÑO"
endif
oHoja1:Cells(1, 4):Font:Bold := .T.
oHoja1:Cells(1, 4):Value := "CCAA"
oHoja1:Cells(1, 5):Font:Bold := .T.
oHoja1:Cells(1, 5):Value := "VENG95SPB"
oHoja1:Cells(1, 6):Font:Bold := .T.
oHoja1:Cells(1, 6):Value := "VENG97CPB"
oHoja1:Cells(1, 7):Font:Bold := .T.
oHoja1:Cells(1, 7):Value := "VENG98SPB"
oHoja1:Cells(1, 8):Font:Bold := .T.
oHoja1:Cells(1, 8):Value := "VENGOA"
oHoja1:Cells(1, 9):Font:Bold := .T.
oHoja1:Cells(1, 9):Value := "VENNGO"
oHoja1:Cells(1,10):Font:Bold := .T.
oHoja1:Cells(1,10):Value := "VENGOB"
oHoja1:Cells(1,11):Font:Bold := .T.
oHoja1:Cells(1,11):Value := "VENP_S_I_GOB"
oHoja1:Cells(1,12):Font:Bold := .T.
oHoja1:Cells(1,12):Value := "VENGOC"
oHoja1:Cells(1,13):Font:Bold := .T.
oHoja1:Cells(1,13):Value := "VOL_GOC_UE"
oHoja1:Cells(1,14):Font:Bold := .T.
oHoja1:Cells(1,14):Value := "VENBIOD"
oHoja1:Cells(1,15):Font:Bold := .T.
oHoja1:Cells(1,15):Value := "VENP_S_I_FOB"
oHoja1:Cells(1,16):Font:Bold := .T.
oHoja1:Cells(1,16):Value := "VENPIEVM_FOB"
oHoja1:Cells(1,17):Font:Bold := .T.
oHoja1:Cells(1,17):Value := "CNT_FOB_UE"
oHoja1:Cells(1,18):Font:Bold := .T.
oHoja1:Cells(1,18):Value := "VENP_S_I_FOE"
oHoja1:Cells(1,19):Font:Bold := .T.
oHoja1:Cells(1,19):Value := "VENPIEVM_FOE"
oCol = 2
do while .T.
if eof()
exit
endif
oHoja1:Cells(oCol, 1):Value := VDTMA2->firma
oHoja1:Cells(oCol, 2):Value := VDTMA2->segmento
if opc = 1
oHoja1:Cells(oCol, 3):Value := VDTMA2->periodo
else
oHoja1:Cells(oCol, 3):Value := VDTMA2->ano
endif
oHoja1:Cells(oCol, 4):Value := VDTMA2->ccaa
if veng95spb > 0.000
oHoja1:Cells(oCol, 5):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol, 5):Value := VDTMA2->veng95spb
endif
if veng97cpb > 0.000
oHoja1:Cells(oCol, 6):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol, 6):Value := VDTMA2->veng97cpb
endif
if veng98spb > 0.000
oHoja1:Cells(oCol, 7):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol, 7):Value := VDTMA2->veng98spb
endif
if vengoa > 0.000
oHoja1:Cells(oCol, 8):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol, 8):Value := VDTMA2->vengoa
endif
if venngo > 0.000
oHoja1:Cells(oCol, 9):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol, 9):Value := VDTMA2->venngo
endif
if vengob > 0.000
oHoja1:Cells(oCol,10):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,10):Value := VDTMA2->vengob
endif
if venpsigob > 0.000
oHoja1:Cells(oCol,11):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,11):Value := VDTMA2->venpsigob
endif
if vengoc > 0.000
oHoja1:Cells(oCol,12):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,12):Value := VDTMA2->vengoc
endif
if vol_goc_ue> 0.000
oHoja1:Cells(oCol,13):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,13):Value := VDTMA2->vol_goc_ue
endif
if venbiod > 0.000
oHoja1:Cells(oCol,14):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,14):Value := VDTMA2->venbiod
endif
if venpsifob > 0.000
oHoja1:Cells(oCol,15):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,15):Value := VDTMA2->venpsifob
endif
if venpievmfo> 0.000
oHoja1:Cells(oCol,16):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,16):Value := VDTMA2->venpievmfo
endif
if cnt_fob_ue> 0.000
oHoja1:Cells(oCol,17):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,17):Value := VDTMA2->cnt_fob_ue
endif
if venpsifoe > 0.000
oHoja1:Cells(oCol,18):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,18):Value := VDTMA2->venpsifoe
endif
if venpievfoe> 0.000
oHoja1:Cells(oCol,19):Set( "NumberFormat", "#.##0,000" )
oHoja1:Cells(oCol,19):Value := VDTMA2->venpievfoe
endif
oCol = oCol + 1
skip + 1
enddo
oHoja1:=NIL
* oWorkBook:SaveAs(xfich2,43)
oWorkBook:SaveAs(xfich2)
* oExcel1:ActiveWorkBook:SaveAs(xfich2,43)
oExcel1:quit()
oExcel1:=NIL
Si podeis ayudarme .