Menu

Fallo Lectura de Datos desde Excel

2016-07-25
2016-08-10
  • Jose Adrian

    Jose Adrian - 2016-07-25

    Saludos a la comunidad,

    Estoy trabajando en tomar datos desde un excel y guardarlos en la base de datos, la funcionalidad en la ultima version de OpenXava v5.5.1 trabaja bien mientras se utilice un archivo .Xls con version libro de Excel 97 - 2003. para esta version no es necesario importar librerias ya que OpenXava cuenta con las librerias Apache POI necesarias para esta funcion.

    Ahora debo cargar un excel con mas de 256 columnas y eso no es posible con la version .Xls, por lo cual necesito usar .XLSX y ahi va el problema comienza cuando intento cargar un archivo con esa extension, he importado las librerias necesarias ya que para esta version de archivo OpenXava no las tiene agregadas, las librerias son las siguientes :

    poi-3.11.jar
    poi-ooxml-3.11.jar
    poi-ooxml-schemas-3.11.jar
    xmlbeans-2.6-0.jar

    tambien he utilizado las ultimas versiones de cada uno de los archivos anteriores y sigue con el fallo y aunque la diferencia radica en que la version .xls inicia con la letra H y el .xlsx inicia con la letra X, y el resto del codigo es identico, no me funciona. si alguien conoce como solucionar este problema le agradeceria la ayuda.

    .XLS = HSSFWorkbook workbook = new HSSFWorkbook(file);
    .XLSX = XSSFWorkbook workbook = new XSSFWorkbook(file);

    esto siempre genera errores cuando se llega a la linea que tiene alguna relacion con la version de XSSFWorkbook o cualquier parte del codigo que tenga relacion al .xlsx

     

    Last edit: Jose Adrian 2016-07-25
  • Jose Adrian

    Jose Adrian - 2016-07-25

    Saludos a la comunidad,

    Estoy trabajando en tomar datos desde un excel y guardarlos en la base de datos, la funcionalidad en la ultima version de OpenXava v5.5.1 trabaja bien mientras se utilice un archivo .Xls con version libro de Excel 97 - 2003. para esta version no es necesario importar librerias ya que OpenXava cuenta con las librerias Apache POI necesarias para esta funcion.

    Ahora debo cargar un excel con mas de 256 columnas y eso no es posible con la version .Xls, por lo cual necesito usar .XLSX y ahi va el problema comienza cuando intento cargar un archivo con esa extension, he importado las librerias necesarias ya que para esta version de archivo OpenXava no las tiene agregadas, las librerias son las siguientes :

    poi-3.11.jar
    poi-ooxml-3.11.jar
    poi-ooxml-schemas-3.11.jar
    xmlbeans-2.6-0.jar

    tambien he utilizado las ultimas versiones de cada uno de los archivos anteriores y sigue con el fallo y aunque la diferencia radica en que la version .xls inicia con la letra H y el .xlsx inicia con la letra X, y el resto del codigo es identico, no me funciona. si alguien conoce como solucionar este problema le agradeceria la ayuda.

    .XLS = HSSFWorkbook workbook = new HSSFWorkbook(file);
    .XLSX = XSSFWorkbook workbook = new XSSFWorkbook(file);

     
  • Javier Paniza

    Javier Paniza - 2016-07-27

    Hola José:

    No es una pregunta de OpenXava. Deberías preguntar en el foro de POI o en StackOverflow, más que nada porque tendrás más posibilidad de tener una respuesta.


    Ayuda a otros en este foro como yo te ayudo a ti.

     
  • Jose Adrian

    Jose Adrian - 2016-07-27

    Hola Javier

    te cuento que si lo hago en java funciona perfectamente, pero cuando lo integro a OpenXava es que genera el Inconveniente.

    es decir si utilizo una clase java que no tenga nada que ver con OpenXava funciona perfecto, pero cuando uso OpenXava para llamar a esta clase java, o escribo directamente en una clase de OpenXava la lectura del excel es donde genera el error.

    voy a adicionar el ejemplo para que lo veas y me das tu Opinion por favor.
    Muchas Gracias por Responder.

     
  • Jose Adrian

    Jose Adrian - 2016-07-28

    Hola Javier,

    Adjunto Los Proyectos realizados Ambos en Eclipse, una esta como el proyecto estandar de java y la otra esta con un proyecto creado en OpenXava, el codigo es identico en ambos al igual que las librerias para ambos proyectos.

    agradeceria si me puedes regalar tu apreciacion y ver si logro encontrar una solucion.
    gracias

     
  • Javier Paniza

    Javier Paniza - 2016-07-29

    Hola José:

    El proyecto Java que adjuntas no es un proyect web. Prueba crear un proyecto web con el Eclipse, pon ahí tu código y llamalo desde un JSP. Si no te funciona, ya puedes preguntar en StackOverflow. Si te funciona, mueve los jars del WEB-INF/lib de tu aplicación OpenXava a tu proyecto web, si no te funciona, es un jar del WEB-INF/lib el que te está fastidiando, vuelve a dejar el WEB-INF/lib de tu proyecto web limpio (solo con los jars de POI) y ve moviendo los jars uno a uno hasta que veas cual es el culpable.


    Ayuda a otros en este foro como yo te ayudo a ti.

     
  • JOSE ELIAS

    JOSE ELIAS - 2016-08-01

    Hola José

    Te agradezco si pones como realizas la carga y lectura del fichero..,,

     
  • Jose Adrian

    Jose Adrian - 2016-08-02

    Hola Javier,
    muchas gracias por responder voy a seguir tus recomendaciones y te aviso como me fue.

     
  • Jose Adrian

    Jose Adrian - 2016-08-02

    Hola José Elias,

    Revisa este mismo Post que dos mensajes luego de que me respondio Javier, o dos mensajes arriba de tu mensaje adjunte el codigo con las librerias necesarias que desarrolle en el Ide Eclipse. muchas gracias por tu interes, ojala logremos resolver este detalle.

     
  • JOSE ELIAS

    JOSE ELIAS - 2016-08-02

    Hola José

    Yo quería ver la clase de lectura completa para ver cómo resuelves el path de carga desde el navegador. Pues yo tengo la carga de ficheros con una librería no , no es la poi, esto el path lo tengo que poner absoluto y por tanto apuntar al servidor donde se encuentra tomcat.

    Te agradezco tu ayuda.

     
  • Jose Adrian

    Jose Adrian - 2016-08-02

    Hola José Elias,

    No entiendo bien tu pregunta, lo que quieres es conocer el directorio de donde se leen los archivos adjunto en openXava? si es asi El directorio de almacenamiento es $HOME/oxfiles (GNU/Linux) o %USERPROFILE%\oxfiles (Windows). en el siguiente enlace de la wiki mencionan ese tema

    https://openxava.wikispaces.com/model_es

     
  • JOSE ELIAS

    JOSE ELIAS - 2016-08-02

    A lo que me refiero es cómo hacer para que la lectura del fichero excel se realice de un directorio cualquiera del ordenador del usuario, mientras que el servidor tomcat se encuentra en cualquier otro servidor, por ejemplo, en un servidor en cloud de cualquier proveedor.

     
  • Jose Adrian

    Jose Adrian - 2016-08-03

    Hola José Elias,

    creo que te refieres a esta linea de codigo;

    FileInputStream inputStream = new FileInputStream(new File("directorio archivo"));

    espero que esta vez si sea lo que necesitas, por ejemplo en mi caso particular :

    FileInputStream inputStream = new FileInputStream(new File("D://prueba.xlsx"));

     
  • JOSE ELIAS

    JOSE ELIAS - 2016-08-03

    Hola José:
    Lo tienes igual que yo, pero plantea un problema, Que pasa si el fichero esta en otro ordenador que no es el sevidor? Y si esta en un directorio?

    Para que a mi me funcione esta solución, que yo uso para subida de maestros iniciales del prpgrama, necesito subir el fichero al servidor y despues leerlo.

     
  • Jose Adrian

    Jose Adrian - 2016-08-03

    Hola José Elias,

    tambien tuve que usar tu misma solucion que mencionas.

     
  • JOSE ELIAS

    JOSE ELIAS - 2016-08-03

    Pero esto no es lo recomemdable, a ver si sale
    una solución de aqui

     
  • Javier Paniza

    Javier Paniza - 2016-08-04

    Hola José:

    En el wiki se explica como cargar y procesar un fichero desde el cliente.


    Ayuda a otros en este foro como yo te ayudo a ti.

     
  • Jose Adrian

    Jose Adrian - 2016-08-04

    Hola Javier,

    Estuve trabajando en lo que me sugeriste de crear un proyecto web limpio con el Eclipse, Adiciono las Librerias Apache POI necesarias para el XLSX, tambien llame la funcion que lee un XLSX desde una pagina JSP y me funcionó perfectamente y sin problemas.

    Asi que comence un nuevo proyecto limpio de OpenXava y al tratar de usar exactamente el mismo codigo, me sigue fallando, trate quitando Todas las librerias de un proyecto solo para esta tarea en openxava y adicionando solo las mismas de apache poi que utilice para el JSP y me sigue generando el error.

    segui todas tus instrucciones y no logro hacerlo funcionar, adjunto el codigo con la lectura desde JSP, la verdad no se como hacerlo funcionar desde OpenXava, te agradeceria mucho si me puedes ayudar con ese tema.

     
  • Javier Paniza

    Javier Paniza - 2016-08-10

    Hola José:

    ¿Qué ocurre si mueves las librerías de OpenXava a tu proyecto web que sí funciona? Si falla, entonces es problema de alguna de los jars incluido en OpenXava y tendrás que moverlos uno a uno hasta que encuentre cual es.


    Ayuda a otros en este foro como yo te ayudo a ti.

     

Log in to post a comment.

MongoDB Logo MongoDB