easyexcel 导出 代码翻译converter_【starter推荐】简单高效Excel 导出工具
发布日期:2025-03-29 02:05:36 浏览次数:8 分类:精选文章

本文共 3030 字,大约阅读时间需要 10 分钟。

EasyExcel:Java पढ़ كثير Excel处理库,看看它是怎么霸พ‌کنندگان

EasyExcel 是个性价比极高的基于 Java 的 Excel 处理库,旨在在尽可能节省内存的前提下,支持读写百万级别的 Excel 文件. 即使是在 64MB 内存下,它也能在一分钟内读取 75MB(约 46W 行 25 列)的 Excel 文件。如果你想用更快的模式还能,那内存占用会稍微增加,可能会达到 100MB 左右.

Spring Boot Starter 依赖

EasyExcel 已经提供了 Spring Boot Starter 依赖包,使开发者在 Web 环境下使用更方便. 它已经上传到 Maven 仓库,可以直接使用:

com.pig4cloud.excel
excel-spring-boot-starter
0.0.1

使用方法

在使用 EasyExcel 的时候,只需要在Controller 层的方法返回 List 并加上 @ResponseExcel 注解即可。

@ResponseExcel(name = "lengleng", sheet = "demoList")@GetMapping("/e1")public List
e1() { List
dataList = new ArrayList<>(100); for (int i = 0; i < 100; i++) { DemoData data = new DemoData(); data.setUsername("tr1" + i); data.setPassword("tr2" + i); dataList.add(data); } return dataList;}

DemoData 实体类如下:

@Datapublic class DemoData {    @ColumnWidth(50) // 定义宽度    @ExcelProperty("用户名") // 定义列名称    private String username;    @ExcelProperty("密码")    private String password;}

核心功能

返回单 sheet 并全部字段导出

返回一个单 sheet 的 List 即可,EasyExcel 会自动把所有字段导出成对应的 Excel 列。

@ResponseExcel(name = "lengleng", sheet = "demoList")@GetMapping("/e1")public List
e1() { List
dataList = new ArrayList<>(100); for (int i = 0; i < 100; i++) { DemoData data = new DemoData(); data.setUsername("tr1" + i); data.setPassword("tr2" + i); dataList.add(data); } return dataList;}

忽略部分字段

如果想忽略某些字段,只需要不在这些字段上使用 @ExcelProperty annotation。

@Datapublic class DemoData {    @ExcelProperty("用户名")    private String username;    @ExcelProperty("密码")    private String password;}

自定义字段属性

通过独特的 ExcelPropertyColumnWidth annotation,可以自定义字段的属性。

@Datapublic class DemoData {    @ColumnWidth(50)    @ExcelProperty("用户名")    private String username;    @ContentStyle(fillPatternType = FillPatternType.SOLID_FOREGROUND, fillForegroundColor = 40)    private String username;}

导出多 sheet

如果需要导出多个 sheet,只需要在 @ResponseExcel 上定义多个 sheetName。

@ResponseExcel(name = "lengleng", sheet = { "第一个sheet", "第二个sheet" })@GetMapping("/e1")public List
> e1() { List
> lists = new ArrayList<>(2); lists.add(list()); lists.add(list()); return lists;}

设置 导出加密码

如果需要对 Excel 导出时设置加密码,直接在 @ResponseExcel 上加上 password 属性即可。

@ResponseExcel(name = "lengleng", sheet = "sheetName", password = "lengleng")@GetMapping("/e1")public List
e1() { List
lists = new ArrayList<>(100); for (int i = 0; i < 100; i++) { DemoData data = new DemoData(); data.setUsername("tr1" + i); data.setPassword("tr2" + i); lists.add(data); } return lists;}

高级用法 模板导出

如果项目需要使用模板导出,可以直接指定模板路径。

@ResponseExcel(name = "模板测试excel", sheet = "sheetName", template = "example.xlsx")@GetMapping("/e1")public List
e1() { return list();}

其他用法

  • 理论上支持 Alibaba/EasyExcel v2.1.6 大部分配置
  • 支持 Alibaba/EasyExcel 原生配置注解
  • 导出支持 CSV, Excel, PDF 等格式-Github starter 地址,欢迎 fork 和修改
上一篇:echarts 如何在一条柱形显示两个数字_干货 | 如何快速制作数据地图?让你的可视化逼格再高一级!...
下一篇:deque stack java_「集合系列」- 初探 java 集合框架图

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月18日 08时46分25秒