easyexcel icon indicating copy to clipboard operation
easyexcel copied to clipboard

在Ubuntu24.04LTS中, `EasyExcel.read`无法在指定泛型的监听器上工作

Open hotdogc1017 opened this issue 7 months ago • 1 comments

触发场景描述

按照文档中的示例,我以方法2的方式读取数据,但没有任何效果。以下是最小复现:

public static void main(String[] args) {
        @Data
        class Test {
            @ExcelProperty(index = 0)
            String partNo;
            @ExcelProperty(index = 1)
            String brand;
        }
        EasyExcel.read("/home/hotdog/桌面/缩减后.xlsx", new AbstractIgnoreExceptionReadListener<Test>() {
            @Override
            public void invokeHead(Map headMap, AnalysisContext context) {
            }
            @Override
            public void invoke(Test data, AnalysisContext context) {
                System.out.println(data);  // 没有打印任何数据
            }
            @Override
            public void doAfterAllAnalysed(AnalysisContext context) {
            }
        }).sheet().doRead();
    }

虽然和示例代码略有不同,但应该不是造成问题的关键。

此时如果我忽略AbstractIgnoreExceptionReadListener中的泛型:

public static void main(String[] args) {
        @Data
        class Test {
            @ExcelProperty(index = 0)
            String partNo;
            @ExcelProperty(index = 1)
            String brand;
        }
        EasyExcel.read("/home/hotdog/桌面/缩减后.xlsx", new AbstractIgnoreExceptionReadListener() {
            @Override
            public void invokeHead(Map headMap, AnalysisContext context) {
            }
            @Override
            public void invoke(Object data, AnalysisContext context) {
                System.out.println(data);  // 成功打印数据
            }
            @Override
            public void doAfterAllAnalysed(AnalysisContext context) {
            }
        }).sheet().doRead();
    }

成功读取到数据,但格式看起来像是一个Map

{0=P6KE75CA, 1=LEIDITECH(雷卯)} // 文件中的数据

hotdogc1017 avatar Jul 18 '24 09:07 hotdogc1017