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