咖啡加糖609的gravatar头像
咖啡加糖609 2014-09-20 09:56:40

java通过apache poi导入excel07 出错???

错误信息:
org.apache.poi.openxml4j.exceptions.InvalidOperationException: Can't open the specified file: 'D:\apache-tomcat-6.0.20\webapps\xxx\upload\test.xlsx

代码
log.info("07打开上传文件开始——————");
XSSFWorkbook wb = null;
wb = new XSSFWorkbook(url);   //这一步出错~~~~

 

url是文件的路径,,解析07的excel出错,另外  我tomcat下 upload  下 test.xlsx是存在并且可以打开的

但是每次走到这不就出错,,jar问题  还是  ????


求解了,

所有回答列表(5)
洛庚的gravatar头像
洛庚  LV13 2014年9月22日

HSSHWorkbook 换成Workbook 试试!

评论(2) 最佳答案
最代码官方的gravatar头像
最代码官方  LV167 2014年9月20日

 poi解析excel由于excel的版本不同,所以调用的时候写法也不一样。

你参考下类似的代码吧:

Java_POI读取07版Excel

搜索"poi"的分享列表

Edson188的gravatar头像
Edson188  LV22 2014年9月22日

这个问题嘛是有的,你把tomcat-6.0.20\webapps\xxx\upload\test.xlsx 改为xls就好了,不过可以写个判断遇到什么版本的就到什么版本的,代码应该写的是没问题的。

sayHelloWorld的gravatar头像
sayHelloWorld  LV22 2014年9月29日

版本问题,xlsx是2007的.所以要判断下版本

String fileType=fileName.substring(fileName.lastIndexOf("."),fileName.length());
            FileInputStream fileStream = new FileInputStream(new File(fileName));
            if(".xls".equals(fileType.trim().toLowerCase())){
                workbook = new HSSFWorkbook(fileStream);// 创建 Excel 2003 工作簿对象
            }else if(".xlsx".equals(fileType.trim().toLowerCase())){
                workbook = new XSSFWorkbook(fileStream);//创建 Excel 2007 工作簿对象
            }

hrose12的gravatar头像
hrose12  LV21 2014年9月29日

HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(new FileInputStream(uploadExcel.getAbsolutePath())));仅供参考
        

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友