【wu-easy-excel-starter】1.2.2-JDK17-SNAPSHOT

介绍
复制代码
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.2-JDK17-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> 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框架二进制流文件
支持对象中含有对象
支持对象中含有集合导出自动合并集合
相关推荐
程序猿乐锅3 小时前
【苍穹外卖 Day12| Excel 入门】
excel
用户298698530149 小时前
Python 数据处理:XML 与 Excel 互转的实用指南
后端·python·excel
xiaopai9451 天前
采购系统和Excel表格区别:钢结构项目物资管理的真实较量
excel·建米软件·采购系统
协享科技1 天前
2026 年 AI 表格工具怎么选:ChatGPT、原生 Copilot/Gemini 与公式助手
人工智能·chatgpt·excel·copilot
用户298698530141 天前
前端实战:在 React 中使用 JavaScript 一键导出 Excel 图表与形状为图片
javascript·react.js·excel
Q一件事1 天前
arcpy实现分区统计到一张excel中
excel
AI刀刀1 天前
deepseek 内容粘贴后符号丢失怎么办?AI 导出鸭实测解决排版乱码问题
android·人工智能·excel·ai导出鸭
圣光SG2 天前
Excel 函数大全
算法·excel
小小的木头人3 天前
Python 批量解析 Excel 经纬度,调用高德地图 API 获取中文地址
开发语言·python·excel
观远数据3 天前
从离线开发到实时同步:DataFlow如何支撑企业级数据治理闭环
java·windows·microsoft·excel