疯狂的狮子li
2021-11-26 fa2bdcd5ac5f1c3baa70183699fd29fdb5953d7b
update 抽象 Excel 导入支持自定义监听器
已修改2个文件
已添加1个文件
36 ■■■■ 文件已修改
ruoyi-common/src/main/java/com/ruoyi/common/excel/DefaultExcelListener.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/excel/ExcelListener.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    }
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();
}
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();
    }
    /**