前言
summer-excel是一款基于对象关系映射稳定、便捷、可定制的Excel数据读取工具,基于POI打造支持。利用注解实现Excel数据关系映射,可定制解析策略,以满足不同业务场景的需要。
文章目录
JavaDoc
https://apidoc.gitee.com/tojava/summer-excel
运行环境 JDK1.8
数据类型
JavaType | ExcelType |
---|---|
java.lang.String | CellType.STRING |
java.lang.Boolean | CellType.BOOLEAN |
java.lang.Integer | CellType.NUMERIC |
java.lang.Date | CellType.NUMERIC |
java.lang.Enum | CellType.STRING |
… | … |
使用示例
Maven
<dependency>
<groupId>tk.jfree.summer</groupId>
<artifactId>summer-excel</artifactId>
<version>0.2.0</version>
</dependency>
java 对象注解
@Getter
@Setter
@ToString
@Table(sheet = "日志信息", first = 1)
public class Log {
@Column(name = "A", notes = "账号")
private String username;
@Column(name = "B", notes = "时间", format = "yyyy-MM-dd hh:mm:ss", typeHandler = DateTimeTypeHandler.class)
private java.util.Date gmtCreate;
@Column(name = "C", notes = "操作")
private String type;
}
执行Excel读取
ExcelHelper.builder(Log.class)
.read(new FileInputStream(FileUtilTest.getWebRootPath("log.xlsx")))
.getData().stream().forEach(System.out::println);
Excel数据内容
输出结果
Log(username=admin, gmtCreate=Wed Dec 12 12:12:12 CST 2018, type=登录)
Log(username=zhangsan, gmtCreate=Mon Dec 24 19:00:20 CST 2018, type=查询)
自定义数据类型转换
summer-excel支持自定义数据类型转换
方式一 实现tk.jfree.summer.excel.type.TypeHandler
public class DateTimeTypeHandler implements TypeHandler<java.util.Date> {
private final Field field;
public DateTimeTypeHandler(Field field) {
this.field = field;
}
@Override
public Date get(Cell cell) throws Exception{
//TODO
return null;
}
}
(推荐)方式二 继承tk.jfree.summer.excel.type.AbstractTypeHandler
public class DateTimeTypeHandler extends AbstractTypeHandler<java.util.Date> {
public DateTimeTypeHandler(Field field) {
super(field);
}
@Override
public Date get(Cell cell) throws Exception{
//TODO
return null;
}
}
相关代码https://gitee.com/tojava/jfree-example/tree/master/jfree-excel