Hola de nuevo.
Si podría exportar mediante CVS o TXT pero hay varias condicionantes que me obligan a necesitar de una exportación "más rica".
Acentos, fechas, importes formateados de tal forma que puedan o no salir con decimales, es decir 8.00 no tiene sentido que salga ya que gasta "tinta" a la hora de impresiones.. así que no debe salir.. humm que más espacios entre textos.. hay referencias como no se me invento "569 UHYJ 9090" ...
Todas estas particularidades las puedo conseguir con un xsl inteligente y la idea siempre ha sido transformar para conseguir algo que pueda subir excel de microsoft o scalc en caso de tener a alguien con scalc. Lo bueno que tenía el tema de transformar a html es que tanto uno como otro "subían" el fichero.La jodienda a venido con dos cosas:
1.- A scalc le cuesta horrores subir un fichero ... dobla en tiempos a MS office o incluso los triplica !!!
2.- Un html al final no es posible subirlo en scalc.
El tiempo es bastante importante o incluso diría crucial porque el problema está en que subimos muchos datos. Estamos hablando de 8 mil, 10 mil o incluso más registros. Si algo excede de lo exagerado es tan malo como el que no pueda levantarlo ya que el resultado es el mismo "no poder subirlo".
Subir a "mano" los datos es inviable !! hay que añadir la memoria utilizada por el propio programa que va a subir esos datos y que los tiene por lo tanto en memoria...los datos que va a ir acumulando scalc, el tiempo de subir celdas y formatearlas, que como ya te he comentado son celdas que van a tener su miga, tiempo de comunicación constante entre el programa de pb y scalc. De todas formas hice unas pruebas ya que no tengo más remedio que darle a esto erre que erre hasta conseguir algo factible... y bufff si ya es lento subirlo mediante un html o cualquier otra cosa...a mano ... me da a mi que no.
Estuve mirando el tema de hacer un filtro xml específico para poder abrir con loadComponentFromURL y especificarle con la propiedad FilterName el filtro que yo añadiría ...y que no es más que un xsl específico para construir un xslt en formato openoffice. No se si te sonará el tema ...
- Código: Seleccionar todo Expandir vistaContraer vista
...
...
<office:body>
<office:spreadsheet>
<table:table>
<!-- Format the first 4 columns of the table -->
<table:table-column table:style-name="co1" table:default-cell-style-name="Default"/>
<table:table-column table:style-name="co2" table:default-cell-style-name="ce2"/>
<table:table-column table:style-name="co2" table:default-cell-style-name="ce2"/>
<table:table-column table:style-name="co2" table:default-cell-style-name="ce2"/>
<!-- Insert column labels, first label with default style, the remaining 3 labels right aligned -->
<table:table-row>
<table:table-cell><text:p>ID</text:p></table:table-cell>
<table:table-cell table:style-name="ce1" office:value-type="string"><text:p>All average</text:p></table:table-cell>
...
...
El filtro lo consigo hacer ... no hay problema .. pero debe ser dinámico y lo único que he visto hacer para implementar estos filtros es metiéndolo por menú desde herramientas->Configuración del filtro XML. Desde esta opción del menú de scalc, podemos especificar filtros que despues nos aparecen a la hora de abrir un documento desde scalc en el dropdown de "tipos de archivo". Así que lo puedo utilizar en el método loadComponentFromURL para abrir mis datos xml previamente preparados para el xslt y voilà suben sin problemas y la respuesta es relativamente rápida y no se le va la pinza a scalc como con los html.
Problema !!. No puedo o no se generar estos filtros desde API ... no he logrado entender como se puede programar desde un lenguaje el añadir o quitar filtros a scalc. Creo que es mediante el servicio FilterFactory con la clase ImportXML pero me he dado

y al final desistí al pensar en ooootra posible solución.
He visto que scalc puede abrir "MS Excel 2003 XML". Así que estoy ahora probando de que mis transformaciones en vez de hacerlas a html hacerlas a xml del formato "MS Excel 2003 XML". Parece ser que el comportamiento es similar al de los filtros xml's de scalc ...aunque mis tests me están rebelando que el tiempo de subir el xml a scalc es bastante bastante alto... tanto que no se si será también solución.
Lo suyo sería saber como desde programa (powerbuilder o el que sea... si veo como se hace en basic yo lo puedo trasladar a como se hace en powerbuilder ), generar el filtro xml ...utilizarlo en FilterName para abrir el documento ...grabar a .ods y después destruir el filtro generado...pero no he visto como.
La última locura que se me ocurre es construir el .ods...se que es un comprimido de varios archivos... pero llegado a este punto algo tendré que hacer para salir del paso.
Gracias por la atención que me estas prestando. Si a ti se te ocurre alguna otra cosa o sabrías como orientarme en la generación de filtros xml y/o construcción de un .ods directamente no dudes en decirme cualquier cosa.
Saludos,
Laudrup