[alibaba/easyexcel]读取excel 时,最后列无数据,获取到的数据data,在 Map<Integer, String>map中没有显示null

2024-05-09 347 views
2
异常代码
         String         fileName       = "/Users/jiangasheng/Desktop/太湖县人民医院_doc_郭彤彤_v1.0_20230209.xlsx";
        HeaderListener headerListener = new HeaderListener();
        EasyExcel.read(fileName, headerListener).sheet().autoTrim(true).doRead();
        Map<Integer, String> headMap = headerListener.getHeadMap();
        for (Map.Entry<Integer, String> entry : headMap.entrySet()) {
            System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
        }
        log.info("headMap  size = {}", headMap.size());

        Map<Integer, String> headMap1 = headerListener.getFirstData();
        log.info("data  size = {}", headMap1.size());
        for (Map.Entry<Integer, String> entry : headMap1.entrySet()) {
            System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
        }
异常提示 image 问题描述

请问,如何在data中填充最后一列数据(null)

回答

3

由于为最后一行,在excel中无对应的tag标签 有如下几个解决方案

  1. 将HeaderListener中的解析类型从Map<Integer,Object>类型改成JavaBean
  2. 在HeaderListener中判断invoke数据,如数据key值不等,则进行数据填充。
9

还有问题,请在提交问题哈,这个issue关闭了哈

4

我出现的是同样的问题 之前用3.0.5版本就是正常的, 现在的话 最后一列 如果无值的话,invoke 里面那一行就会少一个最后的null。这感觉像是一个bug 抱歉 您之前回复的原因和方案 我没有理解 @lonecloud
image image