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