From fa2bdcd5ac5f1c3baa70183699fd29fdb5953d7b Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期五, 26 十一月 2021 18:11:41 +0800
Subject: [PATCH] update 抽象 Excel 导入支持自定义监听器

---
 ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java |    3 ++-
 ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java        |   19 ++++++++++---------
 ruoyi-common/src/main/java/com/ruoyi/common/excel/ExcelListener.java        |   14 ++++++++++++++
 3 files changed, 26 insertions(+), 10 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java b/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java
index ba4cbf9..04bee4f 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java
@@ -24,7 +24,7 @@
  */
 @Slf4j
 @NoArgsConstructor
-public class DefaultExcelListener<T> extends AnalysisEventListener<T> {
+public class DefaultExcelListener<T> extends AnalysisEventListener<T> implements ExcelListener<T> {
 
     /**
      * 鏄惁Validator妫�楠岋紝榛樿涓烘槸
@@ -94,6 +94,7 @@
         log.debug("鎵�鏈夋暟鎹В鏋愬畬鎴愶紒");
     }
 
+    @Override
     public ExcelResult<T> getExcelResult() {
         return excelResult;
     }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/excel/ExcelListener.java b/ruoyi-common/src/main/java/com/ruoyi/common/excel/ExcelListener.java
new file mode 100644
index 0000000..2064cad
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/excel/ExcelListener.java
@@ -0,0 +1,14 @@
+package com.ruoyi.common.excel;
+
+import com.alibaba.excel.read.listener.ReadListener;
+
+/**
+ * Excel 瀵煎叆鐩戝惉
+ *
+ * @author Lion Li
+ */
+public interface ExcelListener<T> extends ReadListener<T> {
+
+    ExcelResult<T> getExcelResult();
+
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
index d2ccd56..6168a96 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
@@ -5,6 +5,7 @@
 import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
 import com.ruoyi.common.convert.ExcelBigNumberConvert;
 import com.ruoyi.common.excel.DefaultExcelListener;
+import com.ruoyi.common.excel.ExcelListener;
 import com.ruoyi.common.excel.ExcelResult;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.file.FileUtils;
@@ -36,9 +37,9 @@
     /**
      * 浣跨敤鏍¢獙鐩戝惉鍣ㄥ鐞嗗鍏�
      *
-     * @param is            杈撳叆娴�
-     * @param clazz         瀵硅薄绫诲瀷
-     * @param isValidate    鏄惁 Validator 妫�楠� 榛樿涓烘槸
+     * @param is         杈撳叆娴�
+     * @param clazz      瀵硅薄绫诲瀷
+     * @param isValidate 鏄惁 Validator 妫�楠� 榛樿涓烘槸
      * @return 杞崲鍚庨泦鍚�
      */
     public static <T> ExcelResult<T> importExcel(InputStream is, Class<T> clazz, boolean isValidate) {
@@ -50,14 +51,14 @@
     /**
      * 浣跨敤鑷畾涔夌洃鍚櫒瀵煎叆
      *
-     * @param is            杈撳叆娴�
-     * @param clazz         瀵硅薄绫诲瀷
-     * @param readListener  鑷畾涔夌洃鍚櫒
+     * @param is       杈撳叆娴�
+     * @param clazz    瀵硅薄绫诲瀷
+     * @param listener 鑷畾涔夌洃鍚櫒
      * @return 杞崲鍚庨泦鍚�
      */
-    public static <T> ExcelResult<T> importExcel(InputStream is, Class<T> clazz, DefaultExcelListener<T> readListener) {
-        EasyExcel.read(is, clazz, readListener).sheet().doRead();
-        return readListener.getExcelResult();
+    public static <T> ExcelResult<T> importExcel(InputStream is, Class<T> clazz, ExcelListener<T> listener) {
+        EasyExcel.read(is, clazz, listener).sheet().doRead();
+        return listener.getExcelResult();
     }
 
     /**

--
Gitblit v1.9.3