0


easyExcel导入报错excelType

使用easyExcel导入报错:

Convert excel format exception.You can try specifying the ‘excelType’ yourself




项目中采用easyExcel版本3.1.1pom自行引入,官网:easyExce官网。

本地已写好demo,通过postman调用,可以成功,如下:

packagecom.example.demo;importcom.alibaba.excel.EasyExcel;importcom.alibaba.excel.context.AnalysisContext;importcom.alibaba.excel.read.listener.ReadListener;importcom.alibaba.excel.util.ListUtils;importlombok.extern.slf4j.Slf4j;importorg.springframework.web.bind.annotation.PostMapping;importorg.springframework.web.bind.annotation.RestController;importorg.springframework.web.multipart.MultipartFile;importjava.io.BufferedInputStream;importjava.io.IOException;importjava.io.InputStream;importjava.util.List;@RestController@Slf4jpublicclassEasyExcelBIoController{/**
     * 文件上传
     * <p>1. 创建excel对应的实体对象 参照{@link }
     * <p>2. 由于默认一行行的读取excel,所以需要创建excel一行一行的回调监听器,参照{@link }
     * <p>3. 直接读即可
     */@PostMapping("upload")publicStringupload(MultipartFile file)throwsIOException{InputStream inputStream =newBufferedInputStream(file.getInputStream());try{String fileName = file.getOriginalFilename();// 写法2:// 匿名内部类 不用额外写一个DemoDataListener// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭EasyExcel.read(inputStream,ImportHistoryJsonDto.class,newReadListener<ImportHistoryJsonDto>(){/**
                 * 单次缓存的数据量
                 */publicstaticfinalint BATCH_COUNT =1;/**
                 *临时存储
                 */privateList<ImportHistoryJsonDto> cachedDataList =ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);@Overridepublicvoidinvoke(ImportHistoryJsonDto data,AnalysisContext context){Integer row = context.readRowHolder().getRowIndex();
                    data.setFileName(fileName);
                    data.setRow(row);
                    cachedDataList.add(data);if(cachedDataList.size()>= BATCH_COUNT){saveData();// 存储完成清理 list
                        cachedDataList =ListUtils.newArrayListWithExpectedSize(BATCH_COUNT);}}//最后一次保存走这里@OverridepublicvoiddoAfterAllAnalysed(AnalysisContext context){saveData();}/**
                 * 加上存储数据库
                 */privatevoidsaveData(){System.out.println(1);}}).sheet().doRead();}catch(Exception e){
            e.printStackTrace();}finally{
            inputStream.close();}return"success";}}

上传至项目中,因项目没法本地调试,直接发布到环境在线测试,报错如下:

在这里插入图片描述

第一时间检查excel类型没问题,因为本地跑是可以的,然后百度无果。

百度基本都是说流的问题,尝试过也没用。

在这里插入图片描述

最后去官网查看如下:

在这里插入图片描述

除了XLSX CSV XLS三种类型其他都报标题的错,那么好,我的是小写xlsx,改成大写问题解决。

是不是很简单,送给还在路中的同学

在这里插入图片描述

标签: java postman spring

本文转载自: https://blog.csdn.net/Smy_0114/article/details/126152151
版权归原作者 RT_0114 所有, 如有侵权,请联系我们删除。

“easyExcel导入报错excelType”的评论:

还没有评论