Java - Leer datos de OpenOffice calc

 
Vista:
sin imagen de perfil

Leer datos de OpenOffice calc

Publicado por Jordi (135 intervenciones) el 05/06/2017 17:13:15
Hola chicos y chicas del foro,
mi duda es la siguiente, ¿Existe alguna librería para leer datos de un archivo de LibreOffice calc? He estado mirando por la red a ver que encontraba y lo más similar que me he topado ha sido el ODF, pero leyendo lo que dicen en la página de ODF me ha parecido entender que es más que una librería, es un prorgama para leer archivos de este tipo. ¿No existe algún jar como "mysql connector" para leer archivos de LibreOffice calc sin tener que instalar nada en el equipo?
Muchas gracias, y no hace falta que me mandéis una explicación súper elaborada sobre este tema, con comentar si existe o no y como se llama si existe tengo mas que suficiente! :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 358
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Leer datos de OpenOffice calc

Publicado por Nicolas (137 intervenciones) el 06/06/2017 17:24:05
Hola Jordi.

El siguiente código lo he utilizado y me lee los archivos .ods.
Necesitas descargar la librería jOpenDocument para que funcione.
http://www.jopendocument.org/downloads.html

Espero te sirva.
Abrazo.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.io.File;
import java.io.IOException;
import org.jopendocument.dom.spreadsheet.MutableCell;
import org.jopendocument.dom.spreadsheet.Sheet;
import org.jopendocument.dom.spreadsheet.SpreadSheet;
 
public class NewClass {
 
    public void readODS(File file) {
        Sheet sheet;
        try {
            //Getting the 0th sheet for manipulation| pass sheet name as string
            sheet = SpreadSheet.createFromFile(file).getSheet(0);
 
            //Get row count and column count
            int nColCount = sheet.getColumnCount();
            int nRowCount = sheet.getRowCount();
 
            System.out.println("Rows :" + nRowCount);
            System.out.println("Cols :" + nColCount);
            //Iterating through each row of the selected sheet
            MutableCell cell = null;
            for (int nRowIndex = 0; nRowIndex < nRowCount; nRowIndex++) {
                //Iterating through each column
                int nColIndex = 0;
                for (; nColIndex < nColCount; nColIndex++) {
                    cell = sheet.getCellAt(nColIndex, nRowIndex);
                    System.out.print(cell.getValue() + " ");
                }
                System.out.println();
            }
 
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 
    public static void main(String[] args) {
        String Dir = "archivo.ods";
        File file = new File(Dir);
 
        NewClass unC = new NewClass();
        unC.readODS(file);
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Leer datos de OpenOffice calc

Publicado por Jordi (135 intervenciones) el 06/06/2017 19:36:01
Muchas gracias por tomarte la molestia de dejarme un código de ejemplo y todo.
¡Ahora a continuar con mi programa!
Un abrazo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Leer datos de OpenOffice calc

Publicado por Javi (1 intervención) el 14/03/2019 12:48:44
Hola Nicolás,

Estoy intentando añadir la librería jOpenDocument a mi proyecto, pero me da error al levantar el servidor y no puedo continuar.

Caractarísticas del proyecto:
- Maven 2.
- Servidor Tomcat 7
- Java 1.6
- Eclipse Juno

He añadido el jar a la carpeta WebContent\WEB-INF\lib

Desde las propiedades del proyecto, en Java Build Path, pestaña Libraries, actualizo la estructura de Web App Libraries. Me aparece el jar correctamente.

Hago un Maven-> Update Project.

Hago Refresh, Clean y Build Project del proyecto.

No toco el pom.xml del proyecto. No aparece la dependencia de jOpenDocument, pero no tengo claro que deba aparecer ahí.

Añado el proyecto al servidor Tomcat. Lo levanto, y me da este error:

INFO: validateJarFile(C:\Users\francisco.chaparro\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\SIMEX_V2\WEB-INF\lib\servlet-api-2.3.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
14-mar-2019 12:03:16 org.apache.catalina.core.ContainerBase startInternal
GRAVE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SIMEX]]
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1120)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1572)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1562)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SIMEX]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
... 7 more
Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/SIMEX] due to a StackOverflowError. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies. The class hierarchy being processed was [org.jaxen.util.AncestorAxisIterator->org.jaxen.util.AncestorOrSelfAxisIterator->org.jaxen.util.AncestorAxisIterator]
at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:2176)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2122)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1983)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1944)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1929)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1328)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:887)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:387)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5472)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
... 7 more
14-mar-2019 12:03:16 org.apache.catalina.core.ContainerBase startInternal
GRAVE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1120)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:444)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:756)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.startup.Catalina.start(Catalina.java:693)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1572)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1562)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1128)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
... 7 more
14-mar-2019 12:03:16 org.apache.catalina.startup.Catalina start
GRAVE: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
at org.apache.catalina.startup.Catalina.start(Catalina.java:693)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:756)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:444)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1128)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
... 11 more
14-mar-2019 12:03:16 org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-bio-8080"]
14-mar-2019 12:03:16 org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
14-mar-2019 12:03:16 org.apache.catalina.core.StandardService stopInternal
INFO: Parando servicio Catalina
14-mar-2019 12:03:16 org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["http-bio-8080"]
14-mar-2019 12:03:16 org.apache.coyote.AbstractProtocol destroy
INFO: Destroying ProtocolHandler ["ajp-bio-8009"]
14-mar-2019 12:03:16 org.apache.catalina.deploy.NamingResources cleanUp
ADVERTENCIA: Failed to retrieve JNDI naming context for container [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/SIMEX]] so no cleanup was performed for that container
javax.naming.NamingException: No hay contexto de nombres asociado a este cargador de clase
at org.apache.naming.ContextBindings.getClassLoader(ContextBindings.java:350)
at org.apache.catalina.deploy.NamingResources.cleanUp(NamingResources.java:985)
at org.apache.catalina.deploy.NamingResources.stopInternal(NamingResources.java:968)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:224)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5796)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:224)
at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:263)
at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:1038)
at org.apache.catalina.core.ContainerBase.destroyInternal(ContainerBase.java:1231)
at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:1038)
at org.apache.catalina.core.ContainerBase.destroyInternal(ContainerBase.java:1231)
at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:594)
at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:846)
at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
at org.apache.catalina.startup.Catalina.start(Catalina.java:697)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar