wu-easy-excel-starter 版本:1.2.0-JDK1.8-SNAPSHOT

科技资讯 投稿 6600 0 评论

wu-easy-excel-starter 版本:1.2.0-JDK1.8-SNAPSHOT

1.新增注解 EasyFile 注解支持字符串导出为文件

2.新增EasyExcel 注解支持对象导出文件

介绍

wu-easy-excel-starter是一款面向对象的excel、文件导出框架。
实现的功能:
    1)针对Java中任何对象直接返回给web,在返回web过程自动将对象转换成想要的数据(Excel、File)
    2)前端传一个Excel过来,后端接口接收到的其实已经是Bean了

快速导出excel模块

依赖引入
 <dependency>
    <groupId>com.wu</groupId>
    <artifactId>wu-easy-excel-starter</artifactId>
    <version>1.0.1-SNAPSHOT</version>
 </dependency>

基本用法

 @Data
 public class UseExcel {
 
     @EasyExcelFiled(name = "id"
     private Integer id;
 
     @EasyExcelFiled(name = "当前时间"
     private LocalDateTime currentTime;
 
     @EasyExcelFiled(name = "描述"
     private String desc;
 
     @EasyExcelFiled(name = "类型"
     private String type;
 }

    @EasyExcel(fileName = "导出数据"
    @GetMapping("/run/{size}"
    public List<UseExcel> run(@PathVariable Integer size {
        List<UseExcel> useExcelList = new ArrayList<>(;
        for (int i = 0; i < size; i++ {
            UseExcel useExcel = new UseExcel(;
            useExcel.setCurrentTime(LocalDateTime.MAX;
            useExcel.setDesc("默认方式导出数据";
            useExcel.setId(i;
            useExcel.setType("默认方式双注解导出";
            useExcelList.add(useExcel;
        }
        return useExcelList;
    }

自定义字段注解用法

@Data
public class UseExcel {

    @JSONField(name = "id"
    private Integer id;

    @JSONField(name = "当前时间"
    private LocalDateTime currentTime;

    @JSONField(name = "描述"
    private String desc;

    @JSONField(name = "类型"
    private String type;
}
@EasyExcel(fileName = "非原生注解导出数据", filedColumnAnnotation = JSONField.class,filedColumnAnnotationAttribute = "name",multipleSheet = true, limit = 10,sheetShowContext = EasyExcel.SheetShowContext.TEXT
@GetMapping("/run2/{size}"
public List<UseExcel> run2(@PathVariable Integer size {
    List<UseExcel> useExcelList = new ArrayList<>(;
    for (int i = 0; i < size; i++ {
        UseExcel useExcel = new UseExcel(;
        useExcel.setCurrentTime(LocalDateTime.MAX;
        useExcel.setDesc("自定义字段注解方式导出数据";
        useExcel.setId(i;
        useExcel.setType("自定义字段注解导出";
        useExcelList.add(useExcel;
    }
    return useExcelList;
}         
    说明 filedColumnAnnotation 从 JSONField注解的name属性中获取表头并导出数据
  • multipleSheet 导出的数据分多个sheet(工作簿
  • limit每个sheet 有10条数据
  • sheetShowContext每个sheet的名称使用EasyExcel.SheetShowContext.TEXT 中文

自定义字段注解+自定控制器注解用法

@Data
public class UseExcel {

    @JSONField(name = "id"
    private Integer id;

    @JSONField(name = "当前时间"
    private LocalDateTime currentTime;

    @JSONField(name = "描述"
    private String desc;

    @JSONField(name = "类型"
    private String type;
}
    自定意义EasyExcel注解
@Target({ElementType.TYPE,ElementType.METHOD}
@Retention(RetentionPolicy.RUNTIME
@Documented
@Inherited
@EasyExcel(useAnnotation = false,filedColumnAnnotation = JSONField.class
public @interface EasyExcelTemp {

    /**
     * 文件名称
     * @return String
     */
    @AliasFor(annotation = EasyExcel.class,attribute = "fileName"
    String fileName(;
}
    使用方法
@EasyExcelTemp(fileName = "自定义注解导出"
@GetMapping("/run4/{size}"
public List<UseExcel> run4(@PathVariable Integer size {
    List<UseExcel> useExcelList = new ArrayList<>(;
    for (int i = 0; i < size; i++ {
        UseExcel useExcel = new UseExcel(;
        useExcel.setCurrentTime(LocalDateTime.MAX;
        useExcel.setDesc("自定义注解导出";
        useExcel.setId(i;
        useExcel.setType("自定义注解导出";
        useExcelList.add(useExcel;
    }
    return useExcelList;
}

新增垂直合并excel

编程笔记 » wu-easy-excel-starter 版本:1.2.0-JDK1.8-SNAPSHOT

赞同 (32) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽