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

2024-03-03 10:52

本文主要是介绍【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>

基本用法

 @Datapublic 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<UseExcel> run4(@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;
}

新增垂直合并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框架二进制流文件
支持对象中含有对象
支持对象中含有集合导出自动合并集合

这篇关于【easy-excel-starter】一个注解自动导出对象为Excel 版本 1.2.3-JDK17的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/769408

相关文章

C#实现将XML数据自动化地写入Excel文件

《C#实现将XML数据自动化地写入Excel文件》在现代企业级应用中,数据处理与报表生成是核心环节,本文将深入探讨如何利用C#和一款优秀的库,将XML数据自动化地写入Excel文件,有需要的小伙伴可以... 目录理解XML数据结构与Excel的对应关系引入高效工具:使用Spire.XLS for .NETC

自定义注解SpringBoot防重复提交AOP方法详解

《自定义注解SpringBoot防重复提交AOP方法详解》该文章描述了一个防止重复提交的流程,通过HttpServletRequest对象获取请求信息,生成唯一标识,使用Redis分布式锁判断请求是否... 目录防重复提交流程引入依赖properties配置自定义注解切面Redis工具类controller

python版本切换工具pyenv的安装及用法

《python版本切换工具pyenv的安装及用法》Pyenv是管理Python版本的最佳工具之一,特别适合开发者和需要切换多个Python版本的用户,:本文主要介绍python版本切换工具pyen... 目录Pyenv 是什么?安装 Pyenv(MACOS)使用 Homebrew:配置 shell(zsh

C#如何在Excel文档中获取分页信息

《C#如何在Excel文档中获取分页信息》在日常工作中,我们经常需要处理大量的Excel数据,本文将深入探讨如何利用Spire.XLSfor.NET,高效准确地获取Excel文档中的分页信息,包括水平... 目录理解Excel中的分页机制借助 Spire.XLS for .NET 获取分页信息为什么选择 S

Java利用Spire.XLS for Java自动化设置Excel的文档属性

《Java利用Spire.XLSforJava自动化设置Excel的文档属性》一个专业的Excel文件,其文档属性往往能大大提升文件的可管理性和可检索性,下面我们就来看看Java如何使用Spire... 目录Spire.XLS for Java 库介绍与安装Java 设置内置的 Excel 文档属性Java

Springboot请求和响应相关注解及使用场景分析

《Springboot请求和响应相关注解及使用场景分析》本文介绍了SpringBoot中用于处理HTTP请求和构建HTTP响应的常用注解,包括@RequestMapping、@RequestParam... 目录1. 请求处理注解@RequestMapping@GetMapping, @PostMappin

使用Python将PDF表格自动提取并写入Word文档表格

《使用Python将PDF表格自动提取并写入Word文档表格》在实际办公与数据处理场景中,PDF文件里的表格往往无法直接复制到Word中,本文将介绍如何使用Python从PDF文件中提取表格数据,并将... 目录引言1. 加载 PDF 文件并准备 Word 文档2. 提取 PDF 表格并创建 Word 表格

C#借助Spire.XLS for .NET实现在Excel中添加文档属性

《C#借助Spire.XLSfor.NET实现在Excel中添加文档属性》在日常的数据处理和项目管理中,Excel文档扮演着举足轻重的角色,本文将深入探讨如何在C#中借助强大的第三方库Spire.... 目录为什么需要程序化添加Excel文档属性使用Spire.XLS for .NET库实现文档属性管理Sp

C#实现将Excel工作表拆分为多个窗格

《C#实现将Excel工作表拆分为多个窗格》在日常工作中,我们经常需要处理包含大量数据的Excel文件,本文将深入探讨如何在C#中利用强大的Spire.XLSfor.NET自动化实现Excel工作表的... 目录为什么需要拆分 Excel 窗格借助 Spire.XLS for .NET 实现冻结窗格(Fro

使用Python实现高效复制Excel行列与单元格

《使用Python实现高效复制Excel行列与单元格》在日常办公自动化或数据处理场景中,复制Excel中的单元格、行、列是高频需求,下面我们就来看看如何使用FreeSpire.XLSforPython... 目录一、环境准备:安装Free Spire.XLS for python二、核心实战:复制 Exce