使用阿里的EasyExcel 报错 Convert excel format exception.You can try specifying the ‘excelType‘ yourself

79、使用阿里的EasyExcel 报错 Convert excel format exception.You can try specifying the ‘excelType‘ yourself

1、查看项目版本,如果是2.x的可以更换到3.1.x以上的,就可以自动识别了

没有验证,项目使用的是2.x,更改版本号之后,很多老的东西识别不出来了

项目使用的版本是 2.x的,解决方案

1、网上说是流的属性发生变化了,不是一个文件流,重新new了文件流还是报错  ----未解决
List<Object> objects = EasyExcel.read(new BufferedInputStream(inputStream), easyExcelExceptionUtil).sheet(sheetName.getSheetName()).doReadSync();

2、指定文件的类型    还是报错     ---未解决
List<Object> objects = EasyExcel.read(new BufferedInputStream(inputStream), easyExcelExceptionUtil).excelType(ExcelTypeEnum.XLS).sheet(sheetName.getSheetName()).doReadSync();

3、查看源码发现,read方法有好多种,决定更换读取方式,放置文件的路径  -- 解决
List<Object> objects = EasyExcel.read(caseUploadPath + dataImportDto.getFileUrl(), easyExcelExceptionUtil).sheet(sheetName.getSheetName()).doReadSync();
此时发现读取只能读取单个类型的文件xlsx 或者xls 中的一种
加上判断,用来区分文件类型
 根据文件来切割获取文件类型
String[] fileNameArr = file.getName().split("\\.");
List<Object> objects;
//				xls 或者 xlxs
if (ObjectUtil.equal(fileNameArr[1],"xls")){
    
    
    objects = EasyExcel.read(caseUploadPath + dataImportDto.getFileUrl(), easyExcelExceptionUtil).excelType(ExcelTypeEnum.XLS).sheet(sheetName.getSheetName()).doReadSync();
}else {
    
    
    objects = EasyExcel.read(caseUploadPath + dataImportDto.getFileUrl(), easyExcelExceptionUtil).sheet(sheetName.getSheetName()).doReadSync();
}

read的一些方法

    /**
     * Build excel the read
     *
     * @param pathName
     *            File path to read.
     * @param head
     *            Annotate the class for configuration information.
     * @param readListener
     *            Read listener.
     * @return Excel reader builder.
     */
    public static ExcelReaderBuilder read(String pathName, Class head, ReadListener readListener) {
    
    
        ExcelReaderBuilder excelReaderBuilder = new ExcelReaderBuilder();
        excelReaderBuilder.file(pathName);
        if (head != null) {
    
    
            excelReaderBuilder.head(head);
        }
        if (readListener != null) {
    
    
            excelReaderBuilder.registerReadListener(readListener);
        }
        return excelReaderBuilder;
    }

    /**
     * Build excel the read
     *
     * @param inputStream
     *            Input stream to read.
     * @return Excel reader builder.
     */
    public static ExcelReaderBuilder read(InputStream inputStream) {
    
    
        return read(inputStream, null, null);
    }

    /**
     * Build excel the read
     *
     * @param inputStream
     *            Input stream to read.
     * @param readListener
     *            Read listener.
     * @return Excel reader builder.
     */
    public static ExcelReaderBuilder read(InputStream inputStream, ReadListener readListener) {
    
    
        return read(inputStream, null, readListener);
    }

猜你喜欢

转载自blog.csdn.net/weixin_43987718/article/details/130171170
今日推荐