加文哥 2023-11-23 14:38 采纳率: 15.8%
浏览 11

EasyExcel 导入 获取复杂头部及列表数据

img

EasyExcel 导入 获取头部及列表数据

问题:数据能获取到 字段值乱了 请教!

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-24 00:57
    关注

    【相关推荐】



    • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7744103
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:EasyExcel 实现模板导出、模板导入分析功能
    • 您还可以看一下 张齐老师的快速通关Java 对 Excel导入导出-POI和EasyExcel课程中的 EasyExcel的时间类型转换(难点)小节, 巩固相关知识点
    • 除此之外, 这篇博客: easyExcel的复杂表头多级表头导入中的 首先要了解 easyExcel怎么获取表头 直接贴代码就不废话了 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
      
      import com.alibaba.excel.context.AnalysisContext;
      import com.alibaba.excel.event.AnalysisEventListener;
      import lombok.Data;
      
      import java.util.*;
      
      @Data
      public class AnalysisEventMonitor extends AnalysisEventListener<Map<Integer, String>> {
          /**
           * 存储Key
           */
          Map<Integer, String> key = new HashMap<>();
          /**
           * keuList
           */
          List<String> keyList=new ArrayList<>();
      
          public AnalysisEventMonitor() {
          }
          /**
           * 重写invokeHeadMap方法,获去表头,如果有需要获取第一行表头就重写这个方法,不需要则不需要重写
           *
           * @param headMap Excel每行解析的数据为Map<Integer, String>类型,Integer是Excel的列索引,String为Excel的单元格值
           * @param context context能获取一些东西,比如context.readRowHolder().getRowIndex()为Excel的行索引,表头的行索引为0,0之后的都解析成数据
           */
          @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 的一级表头了。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月23日

悬赏问题

  • ¥15 WPF动态创建页面内容
  • ¥15 如何对TBSS的结果进行统计学的分析已完成置换检验,如何在最终的TBSS输出结果提取除具体值及如何做进一步相关性分析
  • ¥15 SQL数据库操作问题
  • ¥100 关于lm339比较电路出现的问题
  • ¥15 Matlab安装yalmip和cplex功能安装失败
  • ¥15 加装宝马安卓中控改变开机画面
  • ¥15 STK安装问题问问大家,这种情况应该怎么办
  • ¥15 关于罗技鼠标宏lua文件的问题
  • ¥15 halcon ocr mlp 识别问题
  • ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线