遇到 Convert excel format exception.You can try specifying the ‘excelType‘ yourself
整个代码结构和官方文档是一样的,但是运行就提示 “Convert excel format exception.You can try specifying the ‘excelType‘ yourself” 的异常
根据提示找解决办法:提示的是excel类型问题,我一开始的办法是添加文件类型判断,但是并没有解决;然后又查考了一下 EasyExcel 的 read() 方法返回的是 ExcelReaderBuilder 类型,它可以调用 excelType() 方法,该方法可以指定传入的文件类型,并且该方法名也对应于异常提示中的后一句话,所以在读取中加入了该方法。
修改前:
EasyExcel.read(file.getInputStream(), UploadData.class, new UploadDataListener(uploadDAO)).sheet().doRead();
修改后:(加入excelType(ExcelTypeEnum.XLSX) )
EasyExcel.read(file.getInputStream(), UploadData.class, new UploadDataListener(uploadDAO)).excelType(ExcelTypeEnum.XLSX).sheet().doRead();
此问题解决!
补充:
上面的问题应该是版本依赖错误造成的,一开始使用的3.0版本的,后来发现官方文档不再维护,最新版本是3.1版本,改动较大,其中主要一个改动就是可以自动判断excel格式,不用再自己传入excelType参数!
所以改了解决办法:
1.依赖改为3.1版本:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.1</version><!--注意是3.1版本-->
</dependency>
2.读取部分代码仍为:
EasyExcel.read(file.getInputStream(), UploadData.class, new UploadDataListener(uploadDAO)).sheet().doRead();
又遇到 No valid entries or contents found, this is not a valid OOXML (Office Open XML) file 问题
我遇到这个问题的原因是我上传的文件是加密文件,上传 非加密文件 就可以了。