网站首页 > 博客文章 正文
溪云阁:专注编程教学,架构,JAVA,Python,微服务,机器学习等领域,欢迎关注,一起学习。
EasyExcel是基于JAVA的一个Excel操作工具类,与POI类似,这两者的共同就是简化了很多操作excel的步骤,但是不同的是easyexcel针对poi在读取大批量数据消耗内存上的性能问题,这点上easypoi也同样提供了大数据量的导出问题,参考:《springboot2.2.X手册:Easypoi导出excel,最新版的手感香不香? 》。
环境搭建
<!-- 公共组件:swagger服务+入参出参+统一异常拦截 -->
<dependency>
<groupId>com.boots</groupId>
<artifactId>module-boots-api</artifactId>
<version>${parent.version}</version>
</dependency>
<!-- easyexcel包 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.7</version>
</dependency>
普通对象导出
/**
* 用户信息数据
* @author:OprCalf
* @date:2021-1-11 17:17:31
*/
@Data
@AllArgsConstructor
public class Users implements Serializable {
private static final long serialVersionUID = 1L;
// 用户的主键ID不需要导出,直接忽略
@ExcelIgnore
private Integer userId;
@ExcelProperty("用户编号")
private String userCode;
@ExcelProperty("用户名称")
private String userName;
@ExcelProperty("用户图片")
private String userImages;
@ExcelProperty("创建时间")
@DateTimeFormat("yyyy-MM-dd")
private Date date;
@ExcelProperty("用户金额")
@NumberFormat("##.00")
private Double meney;
}
/**
* 普通数据导出
* @author:OprCalf
* @date:2021-1-11 17:25:43
*/
public class NormalExport {
public static void main(String args[]) {
// 创建用户列表
final List<Users> users = Lists.newArrayList();
// 新增用户列表
users.add(new Users(1, "hhh", "小红", "hhh.jpg", new Date(), 64345.2342));
users.add(new Users(2, "aaa", "小军", "hhh.jpg", new Date(), 64567.2342));
users.add(new Users(3, "sss", "小化", "hhh.jpg", new Date(), 64234.2342));
users.add(new Users(4, "ddd", "小天", "hhh.jpg", new Date(), 243132.2342));
users.add(new Users(5, "fff", "小白", "hhh.jpg", new Date(), 21341324.2342));
// 初始化文件位置
final String fileName = "D:\\normal.xlsx";
// 生成文件
EasyExcel.write(fileName, Users.class).sheet("用户信息").doWrite(users);
}
}
图片导出
/**
* @author:OprCalf
* @date:2021-1-12 14:52:16
*/
@Data
@AllArgsConstructor
public class Image implements Serializable {
private static final long serialVersionUID = 1L;
// 用户的主键ID不需要导出,直接忽略
@ExcelIgnore
private final Integer userId;
@ExcelProperty("用户编号")
private final String userCode;
@ExcelProperty("用户名称")
private final String userName;
@ExcelProperty(value = { "用户图片" }, converter = StringImageConverter.class)
private final String userImages;
@ExcelProperty("创建时间")
@DateTimeFormat("yyyy-MM-dd")
private final Date date;
@ExcelProperty("用户金额")
@NumberFormat("##.00")
private final Double meney;
}
/**
* 普通数据导出
* @author:OprCalf
* @date:2021-1-11 17:25:43
*/
public class ImageExport {
public static void main(String args[]) {
// 创建用户列表
final List<Image> image = Lists.newArrayList();
// 新增用户列表
image.add(new Image(1, "hhh", "小红", "D:\\1.png", new Date(), 64345.2342));
image.add(new Image(2, "aaa", "小军", "D:\\1.png", new Date(), 64567.2342));
image.add(new Image(3, "sss", "小化", "D:\\1.png", new Date(), 64234.2342));
image.add(new Image(4, "ddd", "小天", "D:\\1.png", new Date(), 243132.2342));
image.add(new Image(5, "fff", "小白", "D:\\1.png", new Date(), 21341324.2342));
// 初始化文件位置
final String fileName = "D:\\images.xlsx";
// 生成文件
EasyExcel.write(fileName, Image.class).sheet("图片信息").doWrite(image);
}
}
模板导出
/**
* 数据填充对象
* @author:OprCalf
* @date:2021-1-15 9:39:31
*/
@Data
@AllArgsConstructor
public class Filling implements Serializable {
private static final long serialVersionUID = 1L;
@ExcelProperty("用户编号")
private final String userCode;
@ExcelProperty("用户名称")
private final String userName;
}
/**
* @author:OprCalf
* @date:2021-1-15 9:40:21
*/
public class FillingExport {
public static void main(String[] args) {
final String templateFileName = "D:\\template.xlsx";
final String fileName = "D:\\templatewrite.xlsx";
// 创建用户列表
final List<Filling> fillings = Lists.newArrayList();
// 新增用户列表
fillings.add(new Filling("hhh", "小红"));
fillings.add(new Filling("aaa", "小军"));
fillings.add(new Filling("sss", "小化"));
fillings.add(new Filling("ddd", "小天"));
fillings.add(new Filling("fff", "小白"));
final ExcelWriter excelWriter = EasyExcel.write(fileName).withTemplate(templateFileName).build();
final WriteSheet writeSheet = EasyExcel.writerSheet().build();
final FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.FALSE).build();
// 填充两行list
excelWriter.fill(fillings, fillConfig, writeSheet);
excelWriter.finish();
}
}
--END--
作者:@溪云阁
原创作品,抄袭必究
如需要源码或请转发,关注后私信我
部分图片或代码来源网络,如侵权请联系删除,谢谢!
猜你喜欢
- 2024-09-29 一日一技:使用XlsxWriter模块在Excel工作表中绘制组合图表
- 2024-09-29 Hutool Java工具类库导出Excel,超级简单
- 2024-09-29 有了这个开源工具后,我五点就下班了
- 2024-09-29 pandas写excel报错IllegalCharacterError解决方案
- 2024-09-29 python从入门到实践,文件读写与Excel操作
- 2024-09-29 Python读写EXCEL文件常用方法大全
- 2024-09-29 太棒了!Python和Excel过了这么久终于可以互通了
- 2024-09-29 EasyExcel实现Excel验证标红备注下载
- 2024-09-29 Python 操作 Excel 表格从简单到高级用法
- 2024-09-29 Excel和Python终于可以互通了(python怎么与excel衔接)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)