Muchisimas gracias los dos. Ahora tengo otro par de caminos que seguir.
La solucion de oscar me parece más sencilla. Porq eu de momento con buscar y sustituir cadenas me sera suficiente. Un saludo. Javier El 1 de junio de 2015, 19:30, Óscar Martínez <[email protected]> escribió: > Buenas, > > Te explico un pequeño intento que he realizado, no se si te valdrá esta > forma. > > Ha sido utilizando la librería jOpenDocument. Me he descargado, el .jar > de la web: http://www.jopendocument.org/downloads.html > > Aquí es donde alguno me podrá corregir y se puede importar el jar (no > recuerdo ahora la forma perfecta de hacerlo el import, ya se mirará pero > mientras esto funciona). Pero he descomprimido el jar en la carpeta: > C:\Users\Oscar\gvSIG\plugins\org.gvsig.scripting.app.extension\lib > dejandolo de nombre /joo/ y dentro todo el contenido del jar. > > Ahora nos vamos a Jython y podemos realizar un import joo que nos > importará todo el contenido de la carpeta, permitiendonos trabajar con > jopendocument. La Api la podemos encontrar en > http://www.jopendocument.org/docs/ > > Adaptando el código a Jython de los ejemplos sobre Modificar una > SpreadSheet http://www.jopendocument.org/start_spreadsheet_2.html > > nos queda algo así: > > from gvsig import * > from org.jopendocument.model import OpenDocument > import joo > from java.io import File > from org.jopendocument.dom.spreadsheet import SpreadSheet > from java.util import Date > from org.jopendocument.dom import OOUtils > > def main(*args): > file = File(r"C:/jOO/invoice.ods") > sheet = SpreadSheet.createFromFile(file).getSheet(0) > > sheet.getCellAt("I10").setValue(Date()) > > sheet.setValueAt("Filling test", 1, 1) > sheet.getCellAt("B27").setValue("On site support") > > sheet.getCellAt("F24").setValue(301) > > sheet.getSpreadSheet().getTableModel("Products").setValueAt(1, 5, 4) > > outputFile = File("C:/jOO/fillingTest1.ods") > OOUtils.open(sheet.getSpreadSheet().saveAs(outputFile)) > > > Esto nos permite modificar las celdas que queramos sobre una existente. > Los ficheros de ejemplo los he descargado de Templates > http://www.jopendocument.org/downloads.html > y situado en la carpeta C:/jOO , esto lo podrás modificar en el código > anterior por supuesto. > > Me he fijado que al modificarlo se abre el sheet pero los valores de > formulas no están actualizadas, hay que presionar MAYUS+CONTROL+F9 para > recalcular. Grabas y listo. > > Este caso es para celdas, pero también hay más ejemplos en la web. > > Por ejemplo, si después utilizamos el siguiente script, podremos > visualizar la plantilla en gvSIG en un visor > > > from gvsig import * > import joo > from joo.org.jopendocument import model > from org.jopendocument.model import OpenDocument > from org.jopendocument.print import DefaultDocumentPrinter > from org.jopendocument.panel import ODSViewerPanel > from javax.swing import JFrame > > def main(*args): > doc = OpenDocument() > doc.loadFrom(r"C:/jOO/invoice.ods") > > > mainFrame = JFrame("Viewer") > printer = DefaultDocumentPrinter() > > viewerPanel = ODSViewerPanel(doc, printer, True) > > mainFrame.setContentPane(viewerPanel) > mainFrame.pack() > mainFrame.setLocation(10, 10) > mainFrame.setVisible(True) > > Espero que te sirva de ayuda, ya nos comentas si te vale como solución o > si por lo que sea debes de utilizar otra librería > > Un saludo, > Óscar Martínez > > El 01/06/2015 a las 12:33, César Martínez Izquierdo escribió: > > Hola Javier, > > > > Nunca he usado nada parecido, pero se me ocurre una posible causa: > > aunque el lenguaje de scripting de gvSIG es Python, está basado en > > Jython (Python ejecutándose sobre Java), así que probablemente no > > debas importar las librerías de Python de OpenOffice sino las de Java. > > > > Para ello seguramente tendrás que añadir algunos jars al classpath de > > inicio de gvSIG (o meterlos de alguna forma como un plugin de gvSIG), > > y usar la API de Java de OpenOffice (aunque la llames desde Python, ya > > que desde el scripting de gvSIG se puede invocar a cualquier método de > > Java). > > > > Te digo todo esto sin conocer las interioridades de OpenOffice ni del > > funcionamiento de Jython. Creo que puedes empezar por buscar > > documentación sobre cómo usar OpenOffice desde Jython, esto te pondrá > > en la buena dirección. > > > > Si al final tienes éxito no te olvides de contar por aquí cómo lo > conseguiste. > > > > Saludos, > > > > César > > > > 2015-06-01 12:13 GMT+02:00 Javier Galán <[email protected]>: > >> Hola a todos: > >> > >> Estoy intentando hacer informes a partir de consultas y datos que tengo > >> cargados en gvSIG. > >> > >> Para ella quería utilizar una plantilla en OO y poder modificarla en > función > >> de los datos y consultas. > >> > >> Para ello desde el modulo de scripting estoy intentando importar las > clases. > >> > >> Pero "import uno" me retorna que no existe > >> > >> He añadido la ruta al path de librerías > >> > >> > >> import sys > >> sys.path.append('C:\Program Files (x86)\OpenOffice 4\program') ##ruta > donde > >> esta instalado OO y está la libreria uno.py > >> > >> pero tambien acabadando error > >> > >> He copiado la librería al lib de gvsig, a ver si así la leía y me da el > >> siguiente error: > >> > >> import uno > >> Traceback (most recent call last): > >> File "<input>", line 1, in <module> > >> File > >> > "C:\Users\PC-VALCAT17\gvSIG\plugins\org.gvsig.scripting.app.extension\lib\uno.py", > >> line 1, in <module> > >> from com.sun.star.uno import UnoRuntime, AnyConverter > >> ImportError: No module named star. > >> > >> Alguien ha intentado algo parecido? Me podría guiar un poco? > >> > >> Muchas gracias. > >> Javier > >> > >> > >> > >> > >> _______________________________________________ > >> gvSIG_usuarios mailing list > >> [email protected] > >> > >> Para ver histórico de mensajes, editar sus preferencias de usuario o > darse > >> de baja en esta lista, acuda a la siguiente dirección: > >> > >> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios > >> > > > > > > _______________________________________________ > gvSIG_usuarios mailing list > [email protected] > > Para ver histórico de mensajes, editar sus preferencias de usuario o darse > de baja en esta lista, acuda a la siguiente dirección: > > http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios >
_______________________________________________ gvSIG_usuarios mailing list [email protected] Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios
