首页 > 基础资料 博客日记
iexcel-excel 读取和写入,解决 excel OOM 问题
2024-02-26 10:30:05基础资料围观230次
本篇文章分享iexcel-excel 读取和写入,解决 excel OOM 问题,对你有帮助的话记得收藏一下,看Java资料网收获更多编程知识
项目简介
IExcel 用于优雅地读取和写入 excel。
避免大 excel 出现 oom,简约而不简单。
特性
-
一行代码搞定一切
-
OO 的方式操作 excel,编程更加方便优雅。
-
sax 模式读取,SXSS 模式写入。避免 excel 大文件 OOM。
-
基于注解,编程更加灵活。
-
设计简单,注释完整。方便大家学习改造。
-
可根据注解指定表头顺序
-
支持 excel 文件内容 bytes[] 内容获取,便于用户自定义操作。
变更日志
v0.0.9 主要变更
Fixed @ExcelField注解失效问题
创作缘由
实际工作和学习中,apache poi 操作 excel 过于复杂。
近期也看了一些其他的工具框架:
-
easypoi
-
easyexcel
-
hutool-poi
都或多或少难以满足自己的实际需要,于是就自己写了一个操作 excel 导出的工具。
实现:在阿里 easyexcel 的基础上进行封装,提升使用的简易度。
快速开始
环境要求
jdk1.8+
maven 3.x
引入 jar
使用 maven 管理。
<dependency>
<groupId>com.github.houbb</groupId>
<artifactId>iexcel</artifactId>
<version>1.0.0</version>
</dependency>
Excel 写入
示例
// 基本属性
final String filePath = PathUtil.getAppTestResourcesPath()+"/excelHelper.xls";
List<User> models = User.buildUserList();
// 直接写入到文件
ExcelHelper.write(filePath, models);
其中:
- User.java
public class User {
private String name;
private int age;
//fluent getter/setter/toString()
}
- buildUserList()
构建对象列表方法如下:
/**
* 构建用户类表
* @return 用户列表
* @since 0.0.4
*/
public static List<User> buildUserList() {
List<User> users = new ArrayList<>();
users.add(new User().name("hello").age(20));
users.add(new User().name("excel").age(19));
return users;
}
写入效果
excel 内容生成为:
name age
hello 20
excel 19
Excel 读取
示例
final String filePath = PathUtil.getAppTestResourcesPath()+"/excelHelper.xls";
List<User> userList = ExcelHelper.read(filePath, User.class);
信息
[User{name='hello', age=20}, User{name='excel', age=19}]
SAX 读
// 待生成的 excel 文件路径
final String filePath = PathUtil.getAppTestResourcesPath()+"/excelReadBySax.xls";
AbstractSaxReadHandler<User> saxReadHandler = new AbstractSaxReadHandler<User>() {
@Override
protected void doHandle(int i, List<Object> list, User user) {
System.out.println(user);
}
};
ExcelHelper.readBySax(User.class, saxReadHandler, filePath);
文档
Bug & Issues
欢迎提出宝贵意见:Bug & Issues
本文由博客一文多发平台 OpenWrite 发布!
文章来源:https://www.cnblogs.com/houbbBlogs/p/18033762
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签: