开发者社区> 问答> 正文

今天十分不顺 使用POI操作excel出现2个十分不解的问题!!!?报错

中午快吃饭了,经理给我2个客户excel的数据,叫我使用POI导出做一些操作并插在数据库

一下午竟然一个都没做完,被说了  平常我是经常使用POI的,都做的很顺溜,但是今天我很纳闷,下面我就来说说问题所在!

第一:明明excel的后缀是xls的,2003版本,纳闷肯定是用HSSFWorkbook等一系列来操作,但是就是报错,非得换成XSSFWorkbook才OK。我还特意看了属性没错啊就是xls。。。。不解。。。

第二:其中一个excel程序还没走到读取的代码呢,直接在创建workbook的地方就停住了,NND,也不报错, 程序就一直在那空跑,好久都没见停,我来回debug好几圈,就是没什么发现,就是不走了。。。尼玛我一下就上火了,这不下班了我还肚子难受。

PS:我在网上说可能不识别,创建workbook要这样:

//创建Workbook
	public  Workbook createWorkbook(InputStream  in) throws  Exception {
	    if (!in.markSupported()) {
	        in = new PushbackInputStream(in, 8);
	        System.out.println(1);
	    }
	    if (POIFSFileSystem.hasPOIFSHeader(in)) {
	    	 System.out.println(2);
	        return new HSSFWorkbook(in);
	    }
	    if (POIXMLDocument.hasOOXMLHeader(in)) {
	    	 System.out.println(3);
	        return new XSSFWorkbook(OPCPackage.open(in));
	    }
	    throw new IllegalArgumentException("你的excel版本目前poi解析不了");
	}



我搬过来,也一样,没效果!


请大家给我看看,谢谢了!

PS:对了,经理说这个excel是从别的系统的接口中生成的,是不是excel生成的就有问题!?

PS:再说一点,我用这个程序测试了类似格式的excel,没问题!就这俩货不行!

展开
收起
爱吃鱼的程序员 2020-06-20 16:44:33 559 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    多谢大家的回复,已经解决了,我用的是3.9版本的POI

    原来这个文件好像在中间被人为的改过后缀,本来是xlsx的 被谁给改了,讨厌~~

    还有至于为什么程序在那空跑步继续下去,我之前都用的是WPS,打开excel没问题,但是用office打开的话就会提示有损坏!我另存为了一份,就OK了,程序一点问题都没有了顺利的读取!

    PS:office是王道啊!本来我也支持一下WPS的,谁知不给力啊!

    多看看文档


    以后这种模棱两可的话就不要评论了WorkbookFactory.create谢谢,已解决,是文件有问题。POI好像是有独立于excel版本的一套更上层的API。另外,或许你这个是csv格式呢。乱猜的你直接用kettel处理多好啊还有就是楼上说的用csv格式或者是你看看是不是excel有空的现象还有你用的包是什么版本贴出来和excel贴出来大家看看
    @80的尾巴坑爹的问题啊!!!我以前生成excel的时候也是问题多多不过都解决了!谢谢,已解决,是文件有问题啊。你的POI什么版本,升级下?我用的3,.9最高的了 FileInputStreaminput=newFileInputStream(newFile(excelPath));POIFSFileSystemfs=newPOIFSFileSystem(input);HSSFWorkbookwb=newHSSFWorkbook(fs);

    我的是这样的,上传EXCEL,读取内容。文件是标准的EXCEL2003

    POI版本是3.7


    谢谢,是文件的原因哈哈,我一看第一次就怀疑是xlsx改过来的。我以前玩过。。。
    2020-06-20 16:44:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
属兔的处子——Clojure太灵活,臣妾驾驭不住啊 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载