Closed hengyizhi closed 1 month ago
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class ExcelReader { public static void main(String[] args) { String fileName = "E:\\\\测试数据\\Daas账单100W.xlsx"; readExcelFile(fileName); } public static void readExcelFile(String fileName) { // 创建一个监听器 AnalysisEventListener<Map<Integer, String>> listener = new AnalysisEventListener<Map<Integer, String>>() { private List<String> headList = new ArrayList<>(); private List<Map<Integer, String>> dataRows = new ArrayList<>(); @Override public void invoke(Map<Integer, String> data, AnalysisContext context) { Integer rowIndex = context.readRowHolder().getRowIndex(); if (rowIndex == 1) { // 读取表头 headList = new ArrayList<>(data.values()); } else if (rowIndex >= 10000 && rowIndex <= 10200) { // 读取指定行的数据 dataRows.add(new HashMap<>(data)); } } @Override public void doAfterAllAnalysed(AnalysisContext context) { // 打印表头 System.out.println("表头:" + headList); // 打印指定行的数据 for (Map<Integer, String> rowData : dataRows) { System.out.println(rowData); } } }; // 读取 Excel 文件 EasyExcel.read(fileName) .headRowNumber(1) // 指定表头行数 .registerReadListener(listener) .sheet() // 指定工作表,如果是第一个工作表可以不写 .doRead(); } }
17:06:29.511 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:1 17:06:30.188 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:1001 17:06:30.295 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:2001 17:06:30.391 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:3001 17:06:30.479 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:4001 17:06:30.554 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:5001 17:06:30.626 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:6001 17:06:30.702 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:7001 17:06:30.762 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:8001 17:06:30.827 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:9001
针对大数据量、不同格式的excel,原需求是通过这个demo打印出表头(默认为第1行)和指定范围的数据(如10000行至10200行);但是一直提示Cache misses count:xx。 这种情况该如何解决?
异常代码
异常提示
17:06:29.511 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:1 17:06:30.188 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:1001 17:06:30.295 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:2001 17:06:30.391 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:3001 17:06:30.479 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:4001 17:06:30.554 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:5001 17:06:30.626 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:6001 17:06:30.702 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:7001 17:06:30.762 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:8001 17:06:30.827 [main] DEBUG com.alibaba.excel.cache.Ehcache - Cache misses count:9001
问题描述
针对大数据量、不同格式的excel,原需求是通过这个demo打印出表头(默认为第1行)和指定范围的数据(如10000行至10200行);但是一直提示Cache misses count:xx。 这种情况该如何解决?