From cc01f01a9ff12f4167d7d5d40bc3cff2ffb366c6 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期二, 15 十一月 2022 15:51:20 +0800
Subject: [PATCH] Excel数据操作

---
 src/main/java/com/lf/server/helper/ExcelHelper.java |   66 ++++++++++++++++++++++++++++++++
 1 files changed, 65 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/lf/server/helper/ExcelHelper.java b/src/main/java/com/lf/server/helper/ExcelHelper.java
index cd93f3e..6eba6ad 100644
--- a/src/main/java/com/lf/server/helper/ExcelHelper.java
+++ b/src/main/java/com/lf/server/helper/ExcelHelper.java
@@ -1,9 +1,73 @@
 package com.lf.server.helper;
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelReader;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.excel.read.metadata.ReadSheet;
+import com.lf.server.annotation.ExcelHead;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
 /**
  * Excel甯姪绫�
  * @author WWW
  */
 public class ExcelHelper {
-    //
+    /**
+     * 璇诲彇Excel
+     *
+     * @param pathName 鏂囦欢璺緞
+     * @param <T>      娉涘瀷绫�
+     * @return 娉涘瀷绫婚泦鍚�
+     */
+    public static <T> List<T> readExcel(Class<?> clazz, String pathName) {
+        ExcelHead head = getExcelHead(clazz);
+        int headRowNumber = head == null ? 1 : head.headRows();
+        String[] strs = null == head || StringHelper.isEmpty(head.excludeSheets()) ? null : head.excludeSheets().split(",");
+        List<String> excludeSheets = null == strs ? null : Arrays.asList(strs);
+
+        List<T> list = new ArrayList<T>();
+        ExcelReader reader = EasyExcel.read(pathName, clazz, new AnalysisEventListener<T>() {
+            @Override
+            public void invoke(T t, AnalysisContext context) {
+                list.add(t);
+            }
+
+            @Override
+            public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+                //
+            }
+        }).headRowNumber(headRowNumber).build();
+
+        List<ReadSheet> sheets = reader.excelExecutor().sheetList();
+        for (ReadSheet sheet : sheets) {
+            if (strs != null && excludeSheets.contains(sheet.getSheetName())) {
+                continue;
+            }
+
+            reader.read(sheet);
+        }
+
+
+        return list;
+    }
+
+    /**
+     * 鑾峰彇Excel澶存敞瑙g被
+     *
+     * @param clazz Class
+     * @param <T>   娉涘瀷绫�
+     * @return 澶磋鏁�
+     */
+    public static <T> ExcelHead getExcelHead(Class<?> clazz) {
+        ExcelHead head = clazz.getAnnotation(ExcelHead.class);
+        if (head != null) {
+            return head;
+        }
+
+        return null;
+    }
 }

--
Gitblit v1.9.3