POI读取excel2007时出现不可思议的问题

[img]http://dl.iteye.com/upload/attachment/0066/4740/2296f50e-9dbd-33d5-b032-cf32c6dc8323.jpg[/img]
try{
FileInputStream fis = new FileInputStream(xlsxFilePath);
XSSFWorkbook book = new XSSFWorkbook(fis);// 出错行
}catch (Exception e) {

e.printStackTrace();
}finally{
try {
if(null != fis)
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}

当程序在main方法中测试时,可以正确的执行。
但是通过web方式发布、访问,在页面上浏览文件、提交,当程序执行到
XSSFWorkbook book = new XSSFWorkbook(fis);
时,就出错了,而后台没有报任何错误,并且没有进入catch块,直接进了finally。

悬赏分提高了,各位兄弟们!(40分呀!)

把你工程下的lib贴出来

Caused by: java.lang.ClassNotFoundException: org.apache.poi.xssf.usermodel.XSSFWorkbook

额,这句说明了问题

首先通过xlsxFilePath 在服务器上找下 是否有这个文件,一般通过本地上传文件到服务器上,需要将本地文件存在服务器上的,否则根据路径在服务器上是找不到这个文件的,何谈读取呢

在你的部署项目的根目录下找下xlsxFilePath,应该是这的问题

假如 你用的是tomcat,项目部署在E:\tomcat\webapps\XX项目,在这下面 你尝试下 读取一个路径为 D:\XXX.xls,你看下是否能读取?路径的问题了

还没认真看问题,你是说,在main下都正常

在服务器上,2003 ok 07不ok

而且你的服务器和文件是同一台机器对吗

你有上传文件吗? 还只是上传了文件的路径

至于不执行catch直接跳到finally

只有一种可能,那就是,产生的是一个Error而不是一个Exception

因为Error和Exception都继承与throwable

至于原因,请听下回分解咯~ 哈哈,我也看些资料

感觉最可能的还是NoClassDefFoundError

再加个catch(Error er) 然后断点看看,是什么错误

奇怪的是,怎么控制台什么都没显示呢

假如以上猜测正确

http://apache-poi.1045710.n5.nabble.com/XSSFWorkBook-is-not-in-poi-3-6-jar-td2311582.html

http://topic.csdn.net/u/20091228/15/be308a37-ac53-4ad6-8d6f-ed628cc0fe5f.html

这两个链接看看,因为XSSF和HSSF 不同,它还需要

poi-ooxm
poi-ooxml-schemas

的支持

呵呵~ 好吧 希望对你有帮助

那你看看是抛出什么error

java.lang.NoClassDefFoundError: org/apache/poi/xssf/usermodel/XSSFWorkbook

亲,很明显了~ 和我猜的一样,就是包的问题

请再次检查你引入的包是否完全~