使用OpenNTF POI从Excel中获取值,但row.getCellType()不再起作用

问题描述 投票:0回答:1

我正在使用UpdateSite在Domino 10服务器上使用OpenNTF的最新POI版本

https://poi4xpages.openntf.org/

我的代码在Excel中读取单元格值

由于某种原因,rowdata.getCell(0).getCellType()方法不再起作用,并且在运行时会产生错误,因此我无法检查单元格包含的值的类型。

方法getStringCellValue()getNumericCellValue()仅在Excel单元格中的值属于该类型时才有效,即,如果我有一个包含100的单元格,则它始终是一个数字。

在我的列中,我同时拥有100100a,如果我将100agetNumericCellValue()一起使用,则会产生错误。

hsCurrent.put("FILE", inputFile);
Workbook wb = ioAction.run(null, hsCurrent);
worksheet = wb.getSheetAt(0);
rowdata = worksheet.getRow(1);
kod = rowdata.getCell(0).getStringCellValue();
price = rowdata.getCell(3).getNumericCellValue();

由于getCellType()无法正常工作,我需要找到另一种方法来处理所收到的错误,如何在Java中做到这一点。

此外,如果您知道getCellType()为何存在问题,请告诉我。

还请注意,所有这些方法都会检查excel中单元格的valuenot它是哪种类型的单元格]

让我知道是否需要提供更多信息

enter image description here

javax.servlet.ServletException: java.lang.NoSuchMethodError: org/apache/poi/ss/usermodel/Cell.getCellType()Lorg/apache/poi/ss/usermodel/CellType; (loaded from file:/D:/Lotus/Domino/Data/domino/workspace/.config/org.eclipse.osgi/42/0/.cp/lib-maven/poi.jar by org.eclipse.osgi.internal.loader.EquinoxClassLoader@ab93247a[biz.webgate.dominoext.poi.library:1.3.1.201703140726(id=42)]) called from class com.consili.ImportExcel (loaded from xspnsf://server:0/web.nsf/WEB-INF/classes/ by com.ibm.domino.xsp.module.nsf.ModuleClassLoader$DynamicClassLoader@9b55621b). at com.ibm.xsp.webapp.FacesServlet.handleError(FacesServlet.java:690) at com.ibm.xsp.webapp.FacesServlet.renderErrorPage(FacesServlet.java:512) at com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:186) at com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138) at com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103) </values>
    <values>at com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:600) at com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1352) at com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:877) at com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:820) at com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:589) at com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1336) at com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:662) at com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:482) at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:357) at com.ibm.designer.runtime.domino.adapter</values>
    <values>.LCDEnvironment.service(LCDEnvironment.java:313) at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272) Caused by: java.lang.NoSuchMethodError: org/apache/poi/ss/usermodel/Cell.getCellType()Lorg/apache/poi/ss/usermodel/CellType; (loaded from file:/D:/Lotus/Domino/Data/domino/workspace/.config/org.eclipse.osgi/42/0/.cp/lib-maven/poi.jar by org.eclipse.osgi.internal.loader.EquinoxClassLoader@ab93247a[biz.webgate.dominoext.poi.library:1.3.1.201703140726(id=42)]) called from class com.consili.ImportExcel (loaded from xspnsf://server:sweb.nsf/WEB-INF/classes/ by com.ibm.domino.xsp.module.nsf.ModuleClassLoader$DynamicClassLoader@9b55621b). at com.consili.ImportExcel.getImportedData(ImportExcel.java:98) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90) at sun.reflect.DelegatingMethodAccessorImpl.i</values>
    <values>nvoke(DelegatingMethodAccessorImpl.java:55) at java.lang.reflect.Method.invoke(Method.java:508) at com.ibm.jscript.types.JavaAccessObject.call(JavaAccessObject.java:322) at com.ibm.jscript.types.FBSObject.call(FBSObject.java:161) at com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:197) at com.ibm.jscript.ASTTree.ASTVariableDecl.interpret(ASTVariableDecl.java:82) at com.ibm.jscript.ASTTree.ASTBlock.interpret(ASTBlock.java:100) at com.ibm.jscript.ASTTree.ASTIf.interpret(ASTIf.java:90) at com.ibm.jscript.ASTTree.ASTBlock.interpret(ASTBlock.java:100) at com.ibm.jscript.ASTTree.ASTTry.interpret(ASTTry.java:109) at com.ibm.jscript.ASTTree.ASTProgram.interpret(ASTProgram.java:119) at com.ibm.jscript.ASTTree.ASTProgram.interpretEx(ASTProgram.java:139) at com.ibm.jscript.JSExpression._interpretExpression(JSExpression.java:435) at com.</values>
    <values>ibm.jscript.JSExpression.access$1(JSExpression.java:424) at com.ibm.jscript.JSExpression$2.run(JSExpression.java:414) at java.security.AccessController.doPrivileged(AccessController.java:732) at com.ibm.jscript.JSExpression.interpretExpression(JSExpression.java:410) at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:251) at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:234) at com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:222) at com.ibm.xsp.binding.javascript.JavaScriptMethodBinding.invoke(JavaScriptMethodBinding.java:111) at com.ibm.xsp.application.ActionListenerImpl.processAction(ActionListenerImpl.java:60) at javax.faces.component.UICommand.broadcast(UICommand.java:324) at com.ibm.xsp.component.UIEventHandler.broadcast(UIEventHandler.java:366) at com.ibm.xsp.component.UIDataPanelBase.broadcas</values>
    <values>t(UIDataPanelBase.java:400) at com.ibm.xsp.component.UIDataPanelBase.broadcast(UIDataPanelBase.java:400) at com.ibm.xsp.component.UIDataPanelBase.broadcast(UIDataPanelBase.java:400) at com.ibm.xsp.component.UIDataPanelBase.broadcast(UIDataPanelBase.java:400) at com.ibm.xsp.component.UIDataPanelBase.broadcast(UIDataPanelBase.java:400) at com.ibm.xsp.component.UIDataPanelBase.broadcast(UIDataPanelBase.java:400) at com.ibm.xsp.component.UIViewRootEx.broadcast(UIViewRootEx.java:1669) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:307) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:428) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:94) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:96) </values>
    <values> at com.ibm.xsp.controller.FacesControllerImpl.execute(FacesControllerImpl.java:256) at com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:231) at com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:157) at com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:163) ... 13 more
java apache-poi xpages
1个回答
0
投票

我做到了,它似乎起作用了

© www.soinside.com 2019 - 2024. All rights reserved.