RE: [java-l] RE: [gx-l] Obtener información de un archivo de excel.

Con GX Java hay 2 métodos para leer Excel:

·         Con Automation: usa la dll de gxoffice para interactuar con excel.exe

·         Sin Automation: usa poi.jar (java puro) para leer y editar el Excel.

 

El error que te da es porque estás usando el primero. generalmente en Web se usa el segundo porque el primero es mucho más lento y precisa levantar un proceso excel.exe por cada usuario que está trabajando con un archivo.

 

Para usar poi.jar debe usarse la siguiente línea antes de abrir el archivo:

&Archivo.UseAutomation = 0 

 

Saludos,

Pablo Moleri

 

De: armando cuellar cano [mailto:arman_cc@hotmail.com]
Expuesto a las: jueves, 19 de agosto de 2010 08:30
Expuesto en: GxJava
Conversación: [java-l] RE: [gx-l] Obtener información de un archivo de excel.
Asunto: [java-l] RE: [gx-l] Obtener información de un archivo de excel.

 

Hola, buen día.
 
Señores: Alguno de ustedes  sabra a donde puedo conseguir  el  GXOffice.dll para 64 bits  ya que tengo  windows 7.
 
 Al momento de  leer  mi archivo de excel  me envia el siguiente  error.
 

Estado HTTP 500 -


type Informe de Excepción
mensaje
descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.
excepción

javax.servlet.ServletException: java.lang.UnsatisfiedLinkError: C:\Windows\GxOffice2.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at com.genexus.gxoffice.ExcelDocument.<clinit>(Unknown Source)
        at com.genexus.gxoffice.ExcelDoc.checkExcelDocument(Unknown Source)
        at com.genexus.gxoffice.ExcelDoc.Open(Unknown Source)
        at paexceltratamientos.execute_int(paexceltratamientos.java:62)
        at paexceltratamientos.execute(paexceltratamientos.java:36)
        at otratamientoscargadosbr_impl.webExecute(otratamientoscargadosbr_impl.java:30)
        at com.genexus.webpanels.GXWebObjectBase.doExecute(Unknown Source)
        at otratamientoscargadosbr.doExecute(otratamientoscargadosbr.java:19)
        at com.genexus.webpanels.GXWebObjectStub.callExecute(Unknown Source)
        at com.genexus.webpanels.GXWebObjectStub.doGet(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:404)
        at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:136)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)
        at java.lang.Thread.run(Unknown Source)
 
        com.genexus.webpanels.GXWebObjectStub.callExecute(Unknown Source)
        com.genexus.webpanels.GXWebObjectStub.doGet(Unknown Source)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:404)
        org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:136)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:820)


nota La traza completa de la causa de este error se encuentra en los archivos de diario de Apache Tomcat/6.0.28.

 
Y cuando   quiero  volver  a leer el archivo de excel me  manda otro mensaje:
 
 

Estado HTTP 500 -


type Informe de Excepción
mensaje
descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.
excepción

javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class com.genexus.gxoffice.ExcelDocument
        at com.genexus.gxoffice.ExcelDoc.checkExcelDocument(Unknown Source)
        at com.genexus.gxoffice.ExcelDoc.Open(Unknown Source)
        at paexceltratamientos.execute_int(paexceltratamientos.java:62)
        at paexceltratamientos.execute(paexceltratamientos.java:36)
        at otratamientoscargadosbr_impl.webExecute(otratamientoscargadosbr_impl.java:30)
        at com.genexus.webpanels.GXWebObjectBase.doExecute(Unknown Source)
        at otratamientoscargadosbr.doExecute(otratamientoscargadosbr.java:19)
        at com.genexus.webpanels.GXWebObjectStub.callExecute(Unknown Source)
        at com.genexus.webpanels.GXWebObjectStub.doGet(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:404)
        at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:136)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)
        at java.lang.Thread.run(Unknown Source)
 
        com.genexus.webpanels.GXWebObjectStub.callExecute(Unknown Source)
        com.genexus.webpanels.GXWebObjectStub.doGet(Unknown Source)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:404)
        org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:136)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:820)


nota La traza completa de la causa de este error se encuentra en los archivos de diario de Apache Tomcat/6.0.28.
 
 
Les agradesco de antemano su valiosa ayuda.
 
Saludos.
 
Armando Cuellar


From: arman_cc@hotmail.com
To: gx-l@gxtech.com.uy; java-l@gxtech.com.uy
Date: Tue, 17 Aug 2010 18:17:20 +0000
Subject: [gx-l] Obtener información de un archivo de excel.

 
Hola, buen día  a todos.
 
Señores, alguno de ustedes me puede ayudar con un problema que tengo, es leer un archivo excel.
 
Estoy utilizando lo siguiente:

 
Genexus 9
Udgrade: Java Generador  6
Udgrade:  Development  7
Tomacat: 6
Sistema operativo: Windows 7
Office: 2007

 
 Ya realice lo siguiente:
 
 Generar el procedimiento para leer la información del excel.
 

 
&Archivo.UseAutomation = 0   // La variable &Archivo  es de tipo ExcelDocument
&Archivo.Open(&ArchivoExcel) // La variable &ArchivoExcel es de tipo blob
&Cont = 2
&DtrSolTrC() = Nullvalue(&DtrSolTrC())
&DTrTrataN1()  = Nullvalue(&DTrTrataN1())
&DTrFolFinN() = Nullvalue(&DTrFolFinN())
&DTrNumPiN() = Nullvalue(&DTrNumPiN())
&EmbDescc() = Nullvalue(&EmbDescc())
&TemDescc() = Nullvalue(&TemDescc())
Do while &Archivo.Cells(&Cont,1).Number <> 0
        &DtrSolTrC(&Cont)  = &Archivo.Cells(&Cont,1).Text
        &DTrTrataN1(&Cont) = &Archivo.Cells(&Cont,2).Text
        &DTrFolFinN(&Cont) = &Archivo.Cells(&Cont,3).Text
        &DTrNumPiN(&Cont)  = &Archivo.Cells(&Cont,4).Number
        &EmbDescc(&Cont)   = &Archivo.Cells(&Cont,5).Text
        &TemDescc(&Cont)   = &Archivo.Cells(&Cont,6).Text
    &Cont += 1
Enddo
 

En el classpath se agrego  el poi.jar 

 

En el momento de  ejecutar   el proceso  me manda el siguiente error:

 

type Informe de Excepción
mensaje
descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.
excepción

javax.servlet.ServletException: java.lang.NullPointerException
        at com.genexus.gxoffice.poi.ExcelDocument.getCells(Unknown Source)
        at com.genexus.gxoffice.ExcelDoc.Cells(Unknown Source)
        at paexceltratamientos.execute_int(paexceltratamientos.java:100)
        at paexceltratamientos.execute(paexceltratamientos.java:36)
        at otratamientoscargadosbr_impl.webExecute(otratamientoscargadosbr_impl.java:30)
        at com.genexus.webpanels.GXWebObjectBase.doExecute(Unknown Source)
        at otratamientoscargadosbr.doExecute(otratamientoscargadosbr.java:19)
        at com.genexus.webpanels.GXWebObjectStub.callExecute(Unknown Source)
        at com.genexus.webpanels.GXWebObjectStub.doGet(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:404)
        at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:136)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)
        at java.lang.Thread.run(Unknown Source)
 
        com.genexus.webpanels.GXWebObjectStub.callExecute(Unknown Source)
        com.genexus.webpanels.GXWebObjectStub.doGet(Unknown Source)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:404)
        org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:136)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


nota La traza completa de la causa de este error se encuentra en los archivos de diario de Apache Tomcat/6.0.28.
 
Les agredecere mucho  su apoyo.
 
Saludos.
 
Armando Cuellar
 

1 Response to "RE: [java-l] RE: [gx-l] Obtener información de un archivo de excel."

  1. Paul Garcia says:
    21 de febrero de 2012 a las 10:49

    Este error no es de las librerias poi, si haces ejecutable el procedimiento y lo ejecutas desde la pantalla execution del entorno de desarrollo veras que si se puede leer.... el problema es cuando se le hace call desde una interfaz web.

Publicar un comentario