【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框架二进制流文件
支持对象中含有对象
支持对象中含有集合导出自动合并集合
相关推荐
城数派2 小时前
1901-2025年中国省市县三级逐年平均气温数据集(Shp/Excel 格式)
excel
一晌小贪欢7 小时前
Python办公18:PDF 转 Word——利用 OCR 技术批量提取不可编辑的文档内容
开发语言·python·pdf·word·excel·数据可视化·python办公
一晌小贪欢8 小时前
Python办公17:暴力拆分——按页数或指定范围提取 PDF 核心页面
java·开发语言·python·pdf·excel·数据可视化·python办公
AI英德西牛仔19 小时前
文心 Excel 与“AI 导出鸭”:PC 端批量导出方案的技术解构
人工智能·excel·deepseek·ai导出鸭
Am-Chestnuts1 天前
AI 对话里的表格怎么导出成 Excel 还能筛选排序?用DS随心转把数据整理成可分析表格
大数据·人工智能·excel
Metaphor6921 天前
使用 Python 读取和删除 Excel 文件属性
python·excel
weixin_469273811 天前
银行流水 PDF 转 Excel 或者 CSV 完整指南
人工智能·pdf·excel
百事牛科技1 天前
Excel部分单元格禁止修改:锁住该锁的,放开该放的
windows·excel
asdzx671 天前
使用 Python 为 Excel 添加各类数据验证规则
开发语言·python·excel
足球中国1 天前
.net DataExcel控件 2.11.1.53版发布
c#·.net·excel