📚IExcel is a java tool for create and read excel easy.(excel 读取和写入,解决 excel OOM 问题。)
IExcel 用于优雅地读取和写入 excel。
避免大 excel 出现 oom,简约而不简单。
一行代码搞定一切
OO 的方式操作 excel,编程更加方便优雅。
sax 模式读取,SXSS 模式写入。避免 excel 大文件 OOM。
基于注解,编程更加灵活。
设计简单,注释完整。方便大家学习改造。
可根据注解指定表头顺序
支持 excel 文件内容 bytes[] 内容获取,便于用户自定义操作。
Fixed @ExcelField注解失效问题
实际工作和学习中,apache poi 操作 excel 过于复杂。
近期也看了一些其他的工具框架:
easypoi
easyexcel
hutool-poi
都或多或少难以满足自己的实际需要,于是就自己写了一个操作 excel 导出的工具。
实现:在阿里 easyexcel 的基础上进行封装,提升使用的简易度。
jdk1.8+
maven 3.x
使用 maven 管理。
<dependency>
<groupId>com.github.houbb</groupId>
<artifactId>iexcel</artifactId>
<version>1.0.0</version>
</dependency>
// 基本属性
final String filePath = PathUtil.getAppTestResourcesPath()+"/excelHelper.xls";
List<User> models = User.buildUserList();
// 直接写入到文件
ExcelHelper.write(filePath, models);
其中:
public class User {
private String name;
private int age;
//fluent getter/setter/toString()
}
构建对象列表方法如下:
/**
* 构建用户类表
* @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
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}]
// 待生成的 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
是否有表头的指定
添加类型转换支持
对于枚举值的注解支持
对于样式的注解支持
多 sheet 支持