Java ApachePOI奇怪的行为
您可以检查以下图像,单元格内容和单元格格式 当我尝试在WinXP 32位和64位上读取此单元格时,Windows Vista使用Apache poi-3.8-20120326.jar int cellType=cell.getCellType 我得到了预期的类型字符串 当我测试它的时候 Windows Server 2008 RV2 64位 CentOS 64位 我得到的单元格类型是数字的,很奇怪,我下面的调用在上面两个操作系统上都返回true DateUtil.isCellDateFormattedcell 单元格内容为 斯托克代尔大道8500号 问题似乎是因为8500和StockDALE之间的空间, 如果我删除空间,它在服务器oss和单元格类型字符串上都能正常工作 是否存在编码问题 该工作表为XLSx格式,我使用的是XSSF Api,Api为我提供了工作表类型 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 我不认为这是个问题,所有的服务器操作系统都没有安装Microsoft Office Int,但在xp和vista上安装了 我得到的完整的Stacktrace 调试语句 调试属性:situsAdd值:8500 STOCKDALE AVE BLK验证器: com.vs.framework.handler.StringHandler属性类型字符串Java ApachePOI奇怪的行为,java,excel,apache-poi,Java,Excel,Apache Poi,您可以检查以下图像,单元格内容和单元格格式 当我尝试在WinXP 32位和64位上读取此单元格时,Windows Vista使用Apache poi-3.8-20120326.jar int cellType=cell.getCellType 我得到了预期的类型字符串 当我测试它的时候 Windows Server 2008 RV2 64位 CentOS 64位 我得到的单元格类型是数字的,很奇怪,我下面的调用在上面两个操作系统上都返回true DateUtil.isCellDateFormat
您确定在两台服务器上使用的Apache POI版本相同吗?@Gagravarr是的,非常确定,版本相同。并且您确定在类路径的某个地方没有旧版本?发生了很多事就是一切。。。有一个很好的机会sure@Gagravarr我仔细检查了服务器和客户端上的所有内容,都是相同的引用JAR,没有重复的POI JAR。您还有其他机器可以试用吗?和/或您可以共享该文件吗?
com.vs.framework.handler.StringHandler property type String
com.vs.framework.exception.ValidationException: Invalid object type for numeric property.
at com.vs.framework.handler.StringHandler.validateProperty(StringHandler.java:17)
at com.tad.app.handler.CSVCellHandlerImpl.validateCell(CSVCellHandlerImpl.java:233)
at com.tad.app.handler.CSVCellHandlerImpl.parseCell(CSVCellHandlerImpl.java:114)
at com.tad.app.importer.PropertyCSVImporterImpl.processCSVSheet(PropertyCSVImporterImpl.java:628)
at com.tad.app.importer.PropertyCSVImporterImpl.doImport(PropertyCSVImporterImpl.java:132)
at com.tad.app.presentation.action.ImportCsvPropertyAction.execute(ImportCsvPropertyAction.java:150)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
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:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)