Automatizar OpenOffice/LibreOffice

386 views
Skip to first unread message

arti...@gmail.com

unread,
Aug 26, 2015, 1:20:08 PM8/26/15
to Comunidad de Visual Foxpro en Español
Hola, me preguntaba si la Automatización para OpenOffice sirve igual para LibreOffice, ¿ eso es así o el procedimiento es distinto ?, tengo una clase para automatizar Excel y va realmente genial, me permite automatizar cualquier cosa en Excel de forma rápida y estoy estudiando modificar dicha clase para automatizar OpenOffice de modo que la misma clase detecte cuando está Excel y cuando OpenOffice y automáticamente aplica una opción u otra de automatización de forma que yo a nivel de la aplicación le envío la información y él me genera la hoja de cálculo según el cliente
tenga instalado MSOffice o OpenOffice. Esto actualmente lo estoy preparando, pero me pregunto si aquellos clientes que tienen LibreOffice en procedimiento de automatización es igual al de OpenOffice o es diferente. Me gustaría saber si alguien ha hecho algo de esto...

Carlos Miguel FARIAS

unread,
Aug 26, 2015, 6:45:20 PM8/26/15
to Grupo Fox

con esta rutina he logrado ya  automatizar la generaciond e una hoja de calculo en Libreoffice

y funciona perfecto

 

en el boton imprimir 

do openoffice()

poncelda(3,10,"Reporte de Ventas")

poncelda(3,11,"Enero")

poncelda(3,12,"Febrero")

poncelda(3,13,"Marzo")

poncelda(4,11,1000)

poncelda(4,12,2000)

poncelda(4,13,1800)

 

 

 

proc openoffice

   oServOO = CREATEOBJECT("Com.Sun.Star.ServiceManager.1") 

   oPlatOO = oServOO.CreateInstance("com.sun.star.frame.Desktop") 

   oReflectX = oServOO.createInstance("com.sun.star.reflection.CoreReflection") 

   oValorP = CREATEOBJECT("Relation") 

   oReflectX.forName("com.sun.star.beans.PropertyValue").CreateObject(@oValorP) 

   DIMENSION aProp(1) 

   aProp[1] = oValorP 

   aProp[1].Name = "ReadOnly" 

   aProp[1].Value = .F. 

   oDoc = oPlatOO.LoadComponentFromURL("private:factory/scalc", "_blank", 0, @aProp) 

   oHoja = oDoc.getSheets.getByIndex(0)

enproc 

 procedure  poncelda

  lpara kfil,kcol, kval

   oCelda = oHoja.getCellByPosition(kcol-1,kfil-1) 

   oDoc.CurrentController.Select(oCelda) 

   oDoc.CurrentSelection.formula =kval

endproc 

 Código provisto por Milton y Carlos Alfaro

Alejandro Isla

unread,
Aug 26, 2015, 8:16:46 PM8/26/15
to Comunidad de Visual Foxpro en Español
SI, usas lo de openpofice en libreoffice.

Alejandro Isla

unread,
Aug 26, 2015, 8:26:25 PM8/26/15
to Comunidad de Visual Foxpro en Español
Bandome en lo hecho por:
* J. MAURICE jsm.maurice @ wanadoo.fr www.atoutfox.org (Y www.aedtf.org!)

que realmente indicó el camino en forma perfecta,realice  "una clase" extremadamente sucia e incompleta, pero muy, muy funcional para un cliente que necesitaba trabajar con el libreoffice.

La comparto, se que es blanco de criticas muy fundadas, pero si partes le sirve, aprovechen (y contribuyan si lo desean si implementan alguna otrafunción)

Saludos, Alejandro
cal_oo.prg

HernanCano

unread,
Aug 27, 2015, 12:51:47 PM8/27/15
to Comunidad de Visual Foxpro en Español
Colega:
Tengo entendido que lo que necesitas (y te aportan) para LibreOffice funciona tanto para StarOffice como para OpenOffice como para LibreOffice.

Usalo y nos cuentas.
Reply all
Reply to author
Forward
0 new messages