日期:2014-05-20  浏览次数:20920 次

jxl导入excel2010报错
在导入Excel2010是报错,看了源码是因为jxl不支持2010版本
 想问下有没有支持Excel2010的jxl版本

自己有个思路就是在java中把文件给转换成2003或2007 版本
在网上搜了很久都没有找到java转换Excel的源码

以下是报错
Java code

jxl.read.biff.BiffException: Unable to recognize OLE stream
    at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
    at jxl.read.biff.File.<init>(File.java:127)
    at jxl.Workbook.getWorkbook(Workbook.java:268)
    at jxl.Workbook.getWorkbook(Workbook.java:253)
    at com.hdsd.xlsManager.ExcelReader.parseXls(ExcelReader.java:310)
    at com.hdsd.xlsManager.ImportXlsAction.business(ImportXlsAction.java:300)
    at com.hdsd.action.BaseAction.execute(BaseAction.java:204)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    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 com.hdsd.db.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:67)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    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.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:619)



------解决方案--------------------
poi支持excel任何版本的
------解决方案--------------------
只是换个jar包而已,代码也仅仅是改一个类而已
03版本和07版本的解析方式就不一样
你要根据后缀名来采用不同的解析方式
jxl不支持07以后的版本的,因为07版本是基于xml的
所以你还得用poi或jca
------解决方案--------------------
jxl不支持2007以上的excel(包括2007),你可以选择apache的poi可以支持所有版本如果你用的是poi中的hssf类进行解析的和jxl一样也只能支持到2007你可以选择用poi的xssf类!
------解决方案--------------------
唉 现在的大侠 都不回帖了 悲剧啊