导入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; } }
上一篇 手把手Java爬虫教学 - 4. htmlunit 页面爬取数据
下一篇 Java之jdk8新特性
版权所有 (c)2021-2022 MSHXW.COM
ICP备案号:晋ICP备2021003244-6号