【easy-excel-starter】一个注解自动导出对象为Excel 版本 1.2.3-JDK17

介绍
版本 1.2.3-JDK17
复制代码
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.2.3-JDK17</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> useUserExcelList = new ArrayList<>();
        for (int i = 0; i < size; i++) {
            UseExcel useExcel = new UseExcel();
            useExcel.setCurrentTime(LocalDateTime.MAX);
            useExcel.setDesc("默认方式导出数据");
            useExcel.setId(i);
            useExcel.setType("默认方式双注解导出");
            useUserExcelList.add(useExcel);
        }
        return useUserExcelList;
    }

自定义字段注解用法

复制代码
@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> useUserExcelList = new ArrayList<>();
    for (int i = 0; i < size; i++) {
        UseExcel useExcel = new UseExcel();
        useExcel.setCurrentTime(LocalDateTime.MAX);
        useExcel.setDesc("自定义字段注解方式导出数据");
        useExcel.setId(i);
        useExcel.setType("自定义字段注解导出");
        useUserExcelList.add(useExcel);
    }
    return useUserExcelList;
}         
  • 说明 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 run4(@PathVariable Integer size) {
    List useUserExcelList = new ArrayList<>();
    for (int i = 0; i < size; i++) {
    UseExcel useExcel = new UseExcel();
    useExcel.setCurrentTime(LocalDateTime.MAX);
    useExcel.setDesc("自定义注解导出");
    useExcel.setId(i);
    useExcel.setType("自定义注解导出");
    useUserExcelList.add(useExcel);
    }
    return useUserExcelList;
    }

新增垂直合并excel

复制代码
@Data
@EasySmart(perfectTable = true)
public class UseExcel {

@EasyExcelFiled(name = "原生注解-id")
@JSONField(name = "JSONField注解-id")
private Integer excelId;

@EasySmartField(name = "`current_time`")
@EasyExcelFiled(name = "原生注解-当前时间")
@JSONField(name = "JSONField注解-当前时间")
private LocalDateTime currentTime;

@EasySmartField(name = "`orderByDesc`")
@EasyExcelFiled(name = "原生注解-描述",fieldMerge = EasyExcelFiled.EasyExcelFieldMerge.VERTICAL)
@JSONField(name = "JSONField注解-描述")
private String desc;

@EasyExcelFiled(name = "原生注解-类型",fieldMerge = EasyExcelFiled.EasyExcelFieldMerge.VERTICAL)
@JSONField(name = "JSONField注解-类型")
private String type;

@EasyExcelFiled(name = "原生注解-是否删除")
@JSONField(name = "JSONField注解-是否删除")
private boolean isDelete;
}
新增Excel 导入支持时间格式
复制代码
新增注解 @EasyFile 支持导出字符串、文件到mvc框架二进制流文件
支持对象中含有对象
支持对象中含有集合导出自动合并集合
相关推荐
Am-Chestnuts1 天前
AI表格复制到Excel后日期金额和编号被改写:导入与格式检查方法
excel
方渐鸿1 天前
【无标题】使用Agent总结网页信息写入Excel
ai·excel
汉拓3D数字化1 天前
设计标准化怎么落地?企业设计标准化的5阶段实施路径
科技·excel·系统·软件
灵析表格1 天前
json_ObjectToKV 函数:Excel解析JSON对象的权威方案
json·excel
灵析表格1 天前
灵析表格文本处理函数技术白皮书:WPS Excel 官方函数扩展库 18 项文本规整与正则批处理企业落地标准
ai·json·excel·wps
灵析表格2 天前
WPS Excel官方函数扩展库数据安全加密校验函数深度研究报告:Excel国密SM3/SM4加解密、MD5摘要、UUID、Base64与URL编解码全栈解析
excel·wps
AC赳赳老秦2 天前
网页公开附件自动采集:OpenClaw 批量下载页面内嵌 Word/Excel 附件,统一格式后结构化入库
java·python·word·php·excel·deepseek·openclaw
VBAMatrix3 天前
表格导航!实现Word合并附注与多个Excel的数据同步
word·excel·审计报告·审计·会计师事务所·报告工具
AI英德西牛仔3 天前
手机文心怎么导出文档?AI 导出鸭一键解决格式崩塌与批量归档难题
人工智能·智能手机·excel·deepseek·ai导出鸭
AI导出鸭3 天前
Grok苹果版导出表格的工程化解耦方案:AI导出鸭的技术逻辑与批量实践
人工智能·excel·ai导出鸭