疯狂的狮子li
2021-11-29 42295ef2ac0a5e78674cf24b62d6834138f0ffdc
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
@@ -4,7 +4,9 @@
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.ruoyi.common.convert.ExcelBigNumberConvert;
import com.ruoyi.common.utils.DictUtils;
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;
@@ -22,7 +24,7 @@
public class ExcelUtil {
   /**
    * 对excel表单默认第一个索引名转换成list(EasyExcel)
     * 同步导入(适用于小数据量)
    *
    * @param is 输入流
    * @return 转换后集合
@@ -31,8 +33,36 @@
      return EasyExcel.read(is).head(clazz).autoCloseStream(false).sheet().doReadSync();
   }
   /**
    * 对list数据源将其里面的数据导入到excel表单(EasyExcel)
     * 使用校验监听器 异步导入 同步返回
     *
     * @param is         输入流
     * @param clazz      对象类型
     * @param isValidate 是否 Validator 检验 默认为是
     * @return 转换后集合
     */
    public static <T> ExcelResult<T> importExcel(InputStream is, Class<T> clazz, boolean isValidate) {
        DefaultExcelListener<T> listener = new DefaultExcelListener<>(isValidate);
        EasyExcel.read(is, clazz, listener).sheet().doRead();
        return listener.getExcelResult();
    }
    /**
     * 使用自定义监听器 异步导入 自定义返回
     *
     * @param is       输入流
     * @param clazz    对象类型
     * @param listener 自定义监听器
     * @return 转换后集合
     */
    public static <T> ExcelResult<T> importExcel(InputStream is, Class<T> clazz, ExcelListener<T> listener) {
        EasyExcel.read(is, clazz, listener).sheet().doRead();
        return listener.getExcelResult();
    }
    /**
     * 导出excel
    *
    * @param list      导出数据集合
    * @param sheetName 工作表的名称
@@ -113,30 +143,6 @@
         }
      }
      return StringUtils.stripEnd(propertyString.toString(), separator);
   }
   /**
    * 解析字典值
    *
    * @param dictValue 字典值
    * @param dictType  字典类型
    * @param separator 分隔符
    * @return 字典标签
    */
   public static String convertDictByExp(String dictValue, String dictType, String separator) {
      return DictUtils.getDictLabel(dictType, dictValue, separator);
   }
   /**
    * 反向解析值字典值
    *
    * @param dictLabel 字典标签
    * @param dictType  字典类型
    * @param separator 分隔符
    * @return 字典值
    */
   public static String reverseDictByExp(String dictLabel, String dictType, String separator) {
      return DictUtils.getDictValue(dictType, dictLabel, separator);
   }
   /**