没有合适的资源?快使用搜索试试~ 我知道了~
真香!Java 导出 Excel 表格竟变得如此简单优雅
20 下载量 160 浏览量
2021-01-21
16:31:59
上传
评论
收藏 371KB PDF 举报
温馨提示
试读
13页
技术选型 能够实现「导入/导出 Excel」的第三方常用类库有 Apache poi、Java Excel(JXL)和阿里巴巴开源的 Easyexcel 等。这么多类库该怎么选呢?在这里小编给大家推荐阿里巴巴开源的「Easyexcel」。 性能对比 poi 和 jxl 对内存的消耗很大,在处理大批量的数据时,容易造成内存溢出。比如处理一个 3M 的 Excel,poi 和 jxl 可能需要上百兆的内存,但 easyexcel 可能只需要几百或几千 KB(内存消耗对比有些夸张)。在性能这一块,Excel 完全是低于 poi 和 jxl。 学习复杂度对比 我最开始使用的是 poi。在学习它的时
资源推荐
资源详情
资源评论
真香!真香!Java 导出导出 Excel 表格竟变得如此简单优雅表格竟变得如此简单优雅
技术选型技术选型
能够实现「导入/导出 Excel」的第三方常用类库有 Apache poi、Java Excel(JXL)和阿里巴巴开源的 Easyexcel 等。这么多
类库该怎么选呢?在这里小编给大家推荐阿里巴巴开源的「Easyexcel」。
性能对比性能对比
poi 和 jxl 对内存的消耗很大,在处理大批量的数据时,容易造成内存溢出。比如处理一个 3M 的 Excel,poi 和 jxl 可能需要上
百兆的内存,但 easyexcel 可能只需要几百或几千 KB(内存消耗对比有些夸张)。在性能这一块,Excel 完全是低于 poi 和
jxl。
学习复杂度对比学习复杂度对比
我最开始使用的是 poi。在学习它的时候,理解起来不难,就是操作的时候太特么的难了。因为 poi 需要自己处理数据,还有
复杂的表格样式,就光是处理数据这一款就很头疼了。等你写好所有的代码,没有几百行,你是实现不了的。反观
easyexcel。它能自己处理数据,表格格式也简单,即使是小白也很容易上手。在学习成本远低于poi。
EasyExcel
EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。 64M
内存1分钟内读取75M(46W行25列)的Excel,当然还有急速模式能更快,但是内存占用会在100M多一点
添加依赖添加依赖
com.alibaba
easyexcel
1.1.2-beat1
基础用法基础用法
只需要在 Controller 层返回 List 并增加 @ResponseExcel注解即可
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ResponseExcel {
String name() default "";
ExcelTypeEnum suffix() default ExcelTypeEnum.XLSX;
String password() default "";
String[] sheet() default {};
boolean inMemory() default false;
String template() default "";
String[] include() default {};
String[] exclude() default {};
Class[] writeHandler() default {};
Class[] converter() default {};
}
返回单 sheet, 全部字段导出
@ResponseExcel(name = "lengleng", sheet = "demoList")
@GetMapping("/e1")
public List e1() {
List dataList = new ArrayList();
for (int i = 0; i < 100; i++) {
DemoData data = new DemoData();
data.setUsername("tr1" + i);
data.setPassword("tr2" + i);
dataList.add(data);
}
return dataList;
}
// 实体对象
@Data
public class DemoData {
private String username;
private String password;
}
自定义字段属性
@Data
public class DemoData {
@ColumnWidth(50) // 定义宽度
@ExcelProperty("用户名") // 定义列名称
@ContentStyle(fillPatternType = FillPatternType.SOLID_FOREGROUND, fillForegroundColor = 40)
private String username;
@ExcelProperty("密码")
private String password;
}
忽略部分字段
@Data
public class DemoData {
@ColumnWidth(50) // 定义宽度
@ExcelProperty("用户名") // 定义列名称
@ContentStyle(fillPatternType = FillPatternType.SOLID_FOREGROUND, fillForegroundColor = 40)
private String username;
@ExcelProperty("密码")
private String password;
导出多导出多sheet
@ResponseExcel(name = "lengleng", sheet = {"第一个sheet","第二个sheet"})
@GetMapping("/e1")
public List<List> e1() {
List<List> lists = new ArrayList();
lists.add(list());
lists.add(list());
return lists;
}
设置导出加密码设置导出加密码
@ResponseExcel(name = "lengleng", sheet = "sheetName",password = "lengleng")
@GetMapping("/e1")
public List<List> e1() {
List<List> lists = new ArrayList();
lists.add(list());
lists.add(list());
return lists;
}
进阶用法进阶用法
模板导出模板导出
@ResponseExcel(name = "模板测试excel", sheet = "sheetName",template = "example.xlsx")
@GetMapping("/e1")
剩余12页未读,继续阅读
资源评论
- 王胜胜2021-09-03无意义的文档
weixin_38691641
- 粉丝: 5
- 资源: 929
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功