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