EasyExcel从指定位置开始读数据

编程入门 行业动态 更新时间:2024-10-26 00:23:49

EasyExcel从指定位置开始<a href=https://www.elefans.com/category/jswz/34/1726169.html style=读数据"/>

EasyExcel从指定位置开始读数据

之前小小的接触过easyExcel,代替了传统的poi,上次使用的时候,表头比较传统,也不复杂,但是这次呢表头稍微有点复杂,读取数据要从指定的位置开始,要从指定位置开始读取easyExcel,所以呢在不断的摸索之后,找到了合适的解决方法。

大佬请绕道,此次记录主要是为了自己下次方便查看。

1.先看下我的表头,如下图:1-5行都是表头

要开始读取数据,第6行才是真正的数据,直接上代码,看下图标红的地方,headRowNumber(),不写默认是1,即就是从第二行开始读数据。

2. 说下导入数据的流程:

1.)表头校验: invokeHeadMap()方法。

/*** @param headMap 传入excel头部(第一行数据)数据的index,name* 					校验excel头部格式,必须完全匹配*/int x=0;@Overridepublic void invokeHeadMap(Map<Integer,String> headMap,AnalysisContext context) {x++;super.invokeHeadMap(headMap, context);System.out.println(headMap.size());if(x==3 && headMap.size()!=20) {teamList.add("解析Excel出错,请传入正确模板的Excel");}}

2.)一条一条数据解析  invoke()方法  ,方法里面是我业务逻辑,数据校验。MedBatchDetailsPerExcel 就是每行具体的数据值

/*** 这个每一条数据解析的时候都回来调用*/List<MedBatchDetailsPer> medBatchDetailsList = new ArrayList<>();//要导入的数据List<MedBatchDetailsPer> medBatchDetailsList3=null;@Overridepublic void invoke(MedBatchDetailsPerExcel data, AnalysisContext context) {log.info("解析到一条数据:{}",JSON.toJSONString(data));total++;Integer rowIndex=context.readRowHolder().getRowIndex()+1;//+1行(实际中excel中第几行的数据)MedBatchDetailsPer medBatchDetailsPer=importDataCheck1(data,rowIndex);importDataCheck(data,rowIndex);List<MedBatchDetailsPer> medBatchDetailsList2 =repeatImportCheck(data,rowIndex);//重复导入校验if (medBatchDetailsList2 != null && medBatchDetailsList2.size() > 0) {medBatchDetailsList3.addAll(medBatchDetailsList2);}medBatchDetailsList.add(medBatchDetailsPer);}

3.)所有数据解析完, doAfterAllAnalysed()方法,里面写的有保存数据方法。

/*** 所有数据解析都完成之后,调用*/@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {// 这里也要保存数据,确保最后遗留的数据也存储到数据库insertAllData(empId,medBatchDetailsList.size(),medBatchDetailsList,medBatchDetailsList3);log.info("所有数据都解析完成!");		}

easyExcel步骤就这几步,具体业务逻辑不一样,只是个敲~~~此次主要记录复杂表头的导入,读取。

 

更多推荐

EasyExcel从指定位置开始读数据

本文发布于:2024-03-08 15:00:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1721201.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:读数   位置   EasyExcel

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!