随笔 - 493  文章 - 0  评论 - 97  阅读 - 239万

【java】解决EasyExcel读取InputStream时解析不到excel文件类型的问题

正常利用EasyExcel读取excel中sheet时会调用如下接口:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static ExcelReaderBuilder read(String pathName, ReadListener readListener) {
        return read((String)pathName, (Class)null, readListener);
    }
 
    public static ExcelReaderBuilder read(String pathName, Class head, ReadListener readListener) {
        ExcelReaderBuilder excelReaderBuilder = new ExcelReaderBuilder();
        excelReaderBuilder.file(pathName);
        if (head != null) {
            excelReaderBuilder.head(head);
        }
 
        if (readListener != null) {
            excelReaderBuilder.registerReadListener(readListener);
        }
 
        return excelReaderBuilder;
    }

  但是EasyExcel还有个读取InputStream的方法,但是这里是没有包含文件类型的信息的,先看接口源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public static ExcelReaderBuilder read(InputStream inputStream) {
       return read((InputStream)inputStream, (Class)null, (ReadListener)null);
   }
 
   public static ExcelReaderBuilder read(InputStream inputStream, ReadListener readListener) {
       return read((InputStream)inputStream, (Class)null, readListener);
   }
 
   public static ExcelReaderBuilder read(InputStream inputStream, Class head, ReadListener readListener) {
       ExcelReaderBuilder excelReaderBuilder = new ExcelReaderBuilder();
       excelReaderBuilder.file(inputStream);
       if (head != null) {
           excelReaderBuilder.head(head);
       }
 
       if (readListener != null) {
           excelReaderBuilder.registerReadListener(readListener);
       }
 
       return excelReaderBuilder;
   }

  因此,需要在调用时,额外指定下excel文件类型,调用参考举例:

1
EasyExcel.read(createInputSream(), null, listener).excelType(ExcelTypeEnum.XLSX).sheet(sheetName).doRead();

 createInputSream()接口返回一个InputStream实例

 

posted on   清清飞扬  阅读(282)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示