iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >Java easyExcel的多级表头怎么导入
  • 294
分享到

Java easyExcel的多级表头怎么导入

2023-07-02 10:07:43 294人浏览 独家记忆
摘要

这篇文章主要介绍了Java easyexcel的多级表头怎么导入的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java easyExcel的多级表头怎么导入文章都会有所收获,下面我们一起来看

这篇文章主要介绍了Java easyexcel的多级表头怎么导入的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java easyExcel的多级表头怎么导入文章都会有所收获,下面我们一起来看看吧。

首先要了解

easyExcel怎么获取表头 直接贴代码就不废话了

import com.alibaba.excel.context.AnalysisContext;import com.alibaba.excel.event.AnalysisEventListener;import lombok.Data;import java.util.*;@Datapublic class AnalysisEventMonitor extends AnalysisEventListener<Map<Integer, String>> {        Map<Integer, String> key = new HashMap<>();        List<String> keyList=new ArrayList<>();    public AnalysisEventMonitor() {    }        @Override    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {        Set<Integer> integerSet = headMap.keySet();        for (Integer integer : integerSet) {            keyList.add(headMap.get(integer));        }        key.putAll(headMap);    }    @Override    public void doAfterAllAnalysed(AnalysisContext context) {    }    @Override    public void invoke(Map<Integer, String> integerStringMap, AnalysisContext analysisContext) {    }}

这块代码就是用于easyExcel读取excel表格的时候拦截表头

类自己创建 继承AnalysisEventListener 就可以 然后重写她的invokeHeadMap方法就可以获取到excel 的一级表头了。

下面导入文件一块的代码

//加载拦截器 作用于 获取表头            AnalysisEventMonitor analysisEventMonitor = new AnalysisEventMonitor ();            //读取导入的excel 这个地方容易报错 0✖什么的 这个时候就去把excel的文件用高级版本的excel重新导出 因为版本过低的问题            List<Map<Integer,Object>> list = EasyExcel.read(file.getInputStream(),analysisEventMonitor ).sheet(0).doReadSync();            //获取拦截器拦截到的 表头的Map集合            Map<Integer, String> key = analysisEventMonitor .geTKEy();

现在 我们拿到了数据也拿到了表头。有的人就会好奇了,你只是获取了一级表头,那我二级表头怎么办? 别着急 听我慢慢说。

上方的代码块, 第二行获取了excel的数据 这个数据是去掉了一级表头之后的数据,说到这 可能有的人就懂了,有的人还是不懂 ok 我们继续说,第三行代码 是我们拦截器拦截的表头的集合 可以看出来 是以map接收的 map的key是一个Integer类型,欸 巧了,我们的数据 list 其中也包了个map而且 map的key 恰好也是Integer类型,这个时候逻辑性好的同学肯定想到了,这个integer 可不是瞎写瞎排序的 而是表头的位置与数据遥相呼应的。那这个时候就简单了,我们只需要找到多级表头的开始位置 即可 下面我会贴图 然后再做解答。

Java easyExcel的多级表头怎么导入

看到现在 成绩是合并了的 多级表头,这个时候 我们获取到的表头集合中的1对应姓名 2对应电话 3对应成绩 我们获取到的数据list,代码写 list.get(0); 这个获取到的数据 就是二级表头中的数据 这个时候又是拿到了一个map 对应关系分别是 1=null 2=null 3=英语 4=语文。 这个时候又有人说了 如果我后面再多一个多级表头怎么办? 贴图。

Java easyExcel的多级表头怎么导入

这个时候 我们获取到的表头数据中 1=姓名 2=电话 3=成绩 4=null 5=考核结果 获取到的list数据中 1=null 2=null 3=英语 4=语文 5=英语 6=语文
到此 多表头的导入就结束了,有的人还是不知道怎么把他存入数据库,那你就要想想了,最笨的方法就是记住下标 填充到实体类中,这个办法非常不推荐 不灵活! 最好办的办法就是用枚举 匹配 文字 再匹配字段 填充实体类 再或者 写个方法 将文字与字段对应上 自动转换实体类。

关于“Java easyExcel的多级表头怎么导入”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java easyExcel的多级表头怎么导入”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Java easyExcel的多级表头怎么导入

本文链接: https://www.lsjlt.com/news/341517.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作