summer-excel实现Excel数据读取

前言
summer-excel是一款基于对象关系映射稳定、便捷、可定制的Excel数据读取工具,基于POI打造支持。利用注解实现Excel数据关系映射,可定制解析策略,以满足不同业务场景的需要。

JavaDoc

https://apidoc.gitee.com/tojava/summer-excel

运行环境 JDK1.8

数据类型

JavaTypeExcelType
java.lang.StringCellType.STRING
java.lang.BooleanCellType.BOOLEAN
java.lang.IntegerCellType.NUMERIC
java.lang.DateCellType.NUMERIC
java.lang.EnumCellType.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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值