栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Hutool Excel大数据读取工具类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Hutool Excel大数据读取工具类

导入maven依赖


    org.apache.poi
    poi-ooxml
    3.17



    xerces
    xercesImpl
    2.9.0

            

    cn.hutool
    hutool-all
    4.6.3

public class BigExcelUtil {
    
    private static List headLine;
    private static final List> datas = new ArrayList<>();
    
    
    private static void readBigExcel(String path, int sheetIndex) {
        datas.clear();
        ExcelUtil.readBySax(path, sheetIndex, (sheetIndex1, rowIndex, rowList) -> {
            if (rowIndex == 0) {
                headLine = new ArrayList<>(rowList);
            } else {
                Map tMap = new HashMap<>(rowList.size());
                for (int i = 0; i < rowList.size(); i++) {
                    tMap.put(String.valueOf(transStr(String.valueOf(headLine.get(i)))), transStr(String.valueOf(rowList.get(i))));
                }
                datas.add(tMap);
            }
        });
    }
    
    
    @SuppressWarnings("unchecked")
    public static  List read(String path, int sheetIndex, Class c) {
        return read(path, sheetIndex, c, Collections.EMPTY_MAP);
    }
    
    
    @SuppressWarnings("unchecked")
    public static  List read(String path, Class c) {
        return read(path, -1, c, Collections.EMPTY_MAP);
    }
    
    
    public static  List read(String path, int sheetIndex, Class c, Map fieldMapping) {
        CopyOptions copyOptions = CopyOptions.create();
        if (CollUtil.isNotEmpty(fieldMapping)) {
            copyOptions.setFieldMapping(fieldMapping);
        }
        
        readBigExcel(path, sheetIndex);
        
        List dataList = new ArrayList<>();
        for (Map data : datas) {
            dataList.add(BeanUtil.fillBeanWithMap(data, ReflectUtil.newInstanceIfPossible(c), copyOptions));
        }
        return dataList;
    }
    
    
    private static Object transStr(String str) {
        return str == null || "".equals(str) ? null : str;
    }
    
}



转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号