作者 RuoYi

Excel支持sort导出排序

@@ -11,11 +11,13 @@ import java.math.BigDecimal; @@ -11,11 +11,13 @@ import java.math.BigDecimal;
11 import java.text.DecimalFormat; 11 import java.text.DecimalFormat;
12 import java.util.ArrayList; 12 import java.util.ArrayList;
13 import java.util.Arrays; 13 import java.util.Arrays;
  14 +import java.util.Comparator;
14 import java.util.Date; 15 import java.util.Date;
15 import java.util.HashMap; 16 import java.util.HashMap;
16 import java.util.List; 17 import java.util.List;
17 import java.util.Map; 18 import java.util.Map;
18 import java.util.UUID; 19 import java.util.UUID;
  20 +import java.util.stream.Collectors;
19 import org.apache.poi.hssf.usermodel.HSSFDateUtil; 21 import org.apache.poi.hssf.usermodel.HSSFDateUtil;
20 import org.apache.poi.ss.usermodel.BorderStyle; 22 import org.apache.poi.ss.usermodel.BorderStyle;
21 import org.apache.poi.ss.usermodel.Cell; 23 import org.apache.poi.ss.usermodel.Cell;
@@ -39,17 +41,17 @@ import org.apache.poi.xssf.streaming.SXSSFWorkbook; @@ -39,17 +41,17 @@ import org.apache.poi.xssf.streaming.SXSSFWorkbook;
39 import org.apache.poi.xssf.usermodel.XSSFDataValidation; 41 import org.apache.poi.xssf.usermodel.XSSFDataValidation;
40 import org.slf4j.Logger; 42 import org.slf4j.Logger;
41 import org.slf4j.LoggerFactory; 43 import org.slf4j.LoggerFactory;
  44 +import com.ruoyi.common.core.text.Convert;
  45 +import com.ruoyi.common.exception.CustomException;
  46 +import com.ruoyi.common.utils.DateUtils;
  47 +import com.ruoyi.common.utils.StringUtils;
  48 +import com.ruoyi.common.utils.reflect.ReflectUtils;
42 import com.ruoyi.framework.aspectj.lang.annotation.Excel; 49 import com.ruoyi.framework.aspectj.lang.annotation.Excel;
43 import com.ruoyi.framework.aspectj.lang.annotation.Excel.ColumnType; 50 import com.ruoyi.framework.aspectj.lang.annotation.Excel.ColumnType;
44 import com.ruoyi.framework.aspectj.lang.annotation.Excel.Type; 51 import com.ruoyi.framework.aspectj.lang.annotation.Excel.Type;
45 import com.ruoyi.framework.aspectj.lang.annotation.Excels; 52 import com.ruoyi.framework.aspectj.lang.annotation.Excels;
46 import com.ruoyi.framework.config.RuoYiConfig; 53 import com.ruoyi.framework.config.RuoYiConfig;
47 import com.ruoyi.framework.web.domain.AjaxResult; 54 import com.ruoyi.framework.web.domain.AjaxResult;
48 -import com.ruoyi.common.core.text.Convert;  
49 -import com.ruoyi.common.exception.CustomException;  
50 -import com.ruoyi.common.utils.DateUtils;  
51 -import com.ruoyi.common.utils.StringUtils;  
52 -import com.ruoyi.common.utils.reflect.ReflectUtils;  
53 55
54 /** 56 /**
55 * Excel相关处理 57 * Excel相关处理
@@ -768,6 +770,7 @@ public class ExcelUtil<T> @@ -768,6 +770,7 @@ public class ExcelUtil<T>
768 } 770 }
769 } 771 }
770 } 772 }
  773 + this.fields = this.fields.stream().sorted(Comparator.comparing(objects -> ((Excel) objects[1]).sort())).collect(Collectors.toList());
771 } 774 }
772 775
773 /** 776 /**
@@ -15,6 +15,11 @@ import java.lang.annotation.Target; @@ -15,6 +15,11 @@ import java.lang.annotation.Target;
15 public @interface Excel 15 public @interface Excel
16 { 16 {
17 /** 17 /**
  18 + * 导出时在excel中排序
  19 + */
  20 + public int sort() default Integer.MAX_VALUE;
  21 +
  22 + /**
18 * 导出到Excel中的名字. 23 * 导出到Excel中的名字.
19 */ 24 */
20 public String name() default ""; 25 public String name() default "";