使用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,改成大写问题解决。
是不是很简单,送给还在路中的同学。
版权归原作者 RT_0114 所有, 如有侵权,请联系我们删除。