struts2上传的excel2007文件,在用poi处理时通过new XSSFWorkbook(inputStream)出错
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以前上传的excel文件是2003版的,现在上传的文件改2007版的excel文件了。
之前处理上传的文件,是通过HSSFWorkbook来处理的,但2007及以上版本的excel文件通过HSSFWorkbook处理不了,所以换成用XSSFWorkbook来处理了。我的部分代码片段如下:
try
{
inputStream = new FileInputStream(file); //file为struts2上传的文件
workbook = new XSSFWorkbook(inputStream);
sheet = workbook.getSheetAt(0);
。。。。。
}
catch (FileNotFoundException e)
{
flag=false;
e.printStackTrace();
}
catch (IOException e)
{
flag=false;
e.printStackTrace();
}catch(Exception e){
flag = false;
e.printStackTrace();
}
finally
{
if(inputStream !=null )
try {
inputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
经过无数次调试,发现每次当执行workbook = new XSSFWorkbook(inputStream);代码后,也没跳到catch里面去处理,而是直接到finally里面了。同时在页面主要提示的报错信息如下:
.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at ng.Thread.run(Thread.java:619) Caused by: ng.NoClassDefFoundError: org/apache/xmlbeans/XmlException at com.cist.dcsys.service.io.CoursesSetIo.importexcel(CoursesSetIo.java:60) at
网上找了很久资料,末能解决。还请各位帮着赐教。因为项目马上验收,时间有限了。谢了各位兄弟姐妹。分数比较可怜了,不好意思