專案地址:GitHub - MatrixSeven/ExcelReads
依賴 Apache POI,Maven 構建,支援 Java 8+ Lambda 風格鏈式調用,適合簡單表格的快速導入導出。
Map 自動映射,可配置標題行、數據起始行、Sheet 範圍。ResultSet,自動映射為 Map 或 Bean 導出。Process(行轉換)、Filter(行過濾)、FilterCol(列過濾)、Sort(排序)鏈式調用。@ExcelAnno(value="標題", required="正則"),Map 陣列規則校驗。// Maven 依賴 <dependency> <groupId>com.seven</groupId> <artifactId>excel-reads</artifactId> <version>1.0.0</version> </dependency>
// 讀取到 Map 列表 List
// Bean 列表導出 List list = Arrays.asList(new A("a","b"), new A("aa","bb")); ExcelFactory.saveExcel(list, "out.xlsx") .process(a -> a.setA("xxxx")) .filterCol(() -> new String[]{"B"}) .filter(a -> a.getA().length() > 1) .sort((o1, o2) -> o1.getAge() - o2.getAge()) .save(); // 數據庫直接導出 ExcelFactory.saveExcel(conn.prepareStatement("SELECT * FROM users LIMIT 10000").executeQuery(), "export.xlsx") .filterCol(() -> new String[]{"updatetime"}) .filter(map -> "北京".equals(map.get("address"))) .save(); // Class 類型導出(最簡潔) ExcelFactory.saveExcel(rs, "export.xlsx", AS.class) .filterCol(() -> new String[]{"updatetime"}) .filter(o -> o.getA().length() > 3) .save();
ResExportDBMap/ResExportDBObj 支援資料庫直接導出。7 萬條數據:Bean 模式比 Map 慢約 800ms,啟用正則校驗會進一步降低速度。純讀取場景建議優先使用 Map 模式。