*-------------------------------------------------------------*
*!*- FUNCTION ExporToCalc([cCursor], [cDestino], [cFileSave])
*!*- cCursor: Alias del cursor que se va a exportar.
*!*- cDestino: Nombre de la carpeta donde se va a grabar.
*!*- cFileName: Nombre del archivo con el que se va a grabar.
*-------------------------------------------------------------*
FUNCTION ExporToCalc(cCursor, cDestino, cFileSave)
LOCAL oManager, oDesktop, oDoc, oSheet, oCell, oRow, FileURL
LOCAL ARRAY laPropertyValue[1]
cWarning = "Exportar a OpenOffice.org Calc"
IF EMPTY(cCursor)
cCursor = ALIAS()
ENDIF
IF TYPE('cCursor') # 'C' OR !USED(cCursor)
MESSAGEBOX("Parametros Invalidos",16,cWarning)
RETURN .F.
ENDIF
lColNum = AFIELDS(lColName,cCursor)
EXPORT TO (cDestino + cFileSave + [.ods]) TYPE XL5
oManager = CREATEOBJECT("com.sun.star.ServiceManager.1")
IF VARTYPE(oManager, .T.) # "O"
MESSAGEBOX("OpenOffice.org Calc no esta instalado en su computador.",64,cWarning)
RETURN .F.
ENDIF
oDesktop = oManager.createInstance("com.sun.star.frame.Desktop")
COMARRAY(oDesktop, 10)
oReflection = oManager.createInstance("com.sun.star.reflection.CoreReflection")
COMARRAY(oReflection, 10)
laPropertyValue[1] = createStruct(@oReflection, "com.sun.star.beans.PropertyValue")
laPropertyValue[1].NAME = "ReadOnly"
laPropertyValue[1].VALUE= .F.
FileURL = ConvertToURL(cDestino + cFileSave + [.ods])
oDoc = oDesktop.loadComponentFromURL(FileURL , "_blank", 0, @laPropertyValue)
oSheet = oDoc.getSheets.getByIndex(0)
FOR i = 1 TO lColNum
oColumn = oSheet.getColumns.getByIndex(i)
oColumn.setPropertyValue("OptimalWidth", .T.)
oCell = oSheet.getCellByPosition( i-1, 0 )
oDoc.CurrentController.SELECT(oCell)
WITH oDoc.CurrentSelection
.CellBackColor = RGB(200,200,200)
.Cell
.CharColor = RGB(255,0,0)
.CharHeight = 10
.CharPosture = 0
.CharShadowed = .F.
.FormulaLocal = lColName[i,1]
.HoriJustify = 2
.ParaAdjust = 3
.ParaLastLineAdjust = 3
ENDWITH
ENDFOR
oCell = oSheet.getCellByPosition( 0, 0 )
oDoc.CurrentController.SELECT(oCell)
laPropertyValue[1] = createStruct(@oReflection, "com.sun.star.beans.PropertyValue")
laPropertyValue[1].NAME = "Overwrite"
laPropertyValue[1].VALUE = .T.
oDoc.STORE()
ENDFUNC
FUNCTION createStruct(toReflection, tcTypeName)
LOCAL loPropertyValue, loTemp
loPropertyValue = CREATEOBJECT("relation")
toReflection.forName(tcTypeName).CREATEOBJECT(@loPropertyValue)
RETURN (loPropertyValue)
ENDFUNC
FUNCTION ConvertToURL(tcFile AS STRING)
IF(TYPE( "tcFile" ) == "C") AND (!EMPTY( tcFile ))
tcFile = [file:///] + CHRTRAN(tcFile, "\", "/" )
ELSE
tcFile = [file:///C:/] + ALIAS() + [.ods]
ENDIF
RETURN tcFile
ENDFUNC
AUTOR: Hector Urrutia
Saludos desde EL Salvador
Buenas Tardes
ResponderBorrarHector Urrutia
fija que tomo tu codigo pero me salta un error me puedes ayudar ?