开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
Excel2Entity首页、文档和下载 - 填充Excel列表工具 - 开源中国社区
Float_left Icon_close
全部项目分类
我要评价
GPL
Java
跨平台
mylxsw
分享
收藏
36 人收藏
收录时间:2013-12-09
Excel2Entity 详细介绍

Excel2Entity

Excel2Entity实现了Java POI对xls文件的读取功能的封装,实现了批量导入Excel中的数据时自动根据Excel中的数据行创建对应的Java POJO实体对象的功能。

该类库也实现了在创建实体对象时对字段类型进行校验,可以对Excel中的数据类型合法性进行校验,通过实现扩展接口,可以实现自定义校验规则以及自定义实体对象字段类型等更加复杂的校验规则和字段类型转换。

应用场景

该类库主要用应用场景是在一般管理系统中批量数据导入。

安装配置

Excel2Entity类库已经加入到Maven中央仓库,如果你的项目使用了Maven,则可以通过添加下面的Maven依赖配置项将该类库加入到您的项目.

<dependency>
    <groupId>cc.aicode.java.e2e</groupId>
    <artifactId>ExcelToEntity</artifactId>
    <version>1.0.0.3</version>
</dependency>

依赖

Excel2Entity依赖于Apache POI类库。

使用说明

使用示例请参考src/test/java/cc/aicode/e2e/Excel2Entity/AppTest测试用例。

普通实体创建

ExcelHelper eh = ExcelHelper.readExcel("111.xls");
    List<Demo> entitys  = null;
    try {
        entitys = eh.toEntitys(Demo.class);
        for (Demo d : entitys) {
            System.out.println(d.toString());
        }
    } catch (ExcelParseException e) {
        System.out.println(e.getMessage());
    } catch (ExcelContentInvalidException e) {
        System.out.println(e.getMessage());
    } catch (ExcelRegexpValidFailedException e) {
        System.out.println(e.getMessage());
    }

注册新的字段类型

注册的新的字段类型类必须实现ExcelType抽象类。

ExcelHelper.registerNewType(MyDataType.class);

实体对象

实体类必须标注@ExcelEntity注解, 同时需要填充的字段标注@ExcelProperty注解

@ExcelEntity
public class Demo {
    @ExcelProperty(value="Name", rule=MyStringCheckRule.class)
    private String name;

    @ExcelProperty("Sex")
    private String sex;
        // 基于正则表达式的字段校验
    @ExcelProperty(value="Age", regexp="^[1-4]{1}[0-9]{1}$", regexpErrorMessage="年龄必须在10-49岁之间")
    private int age;

    @ExcelProperty(value="Tel")
    private Long tel;

    @ExcelProperty("创建时间")
    private Timestamp createDate;

    @ExcelProperty(value="Name", required=true)
    private MyDataType name2;


... [get/set方法]
}

自定义校验规则

自定义校验规则必须实现ExcelRule接口

public class MyStringCheckRule implements ExcelRule<String> {
        // 字段检查
    public void check(Object value, String columnName, String fieldName) throws ExcelContentInvalidException {
        String val = (String) value;
        System.out.println("-------->   检测的列名为  " + columnName + ", 填充的字段名为 " + fieldName );
        if(val.length() > 10){
            throw new ExcelContentInvalidException("内容超长!");
        }
    }
        // 结果修改
    public String filter(Object value, String columnName, String fieldName) {
        String val = (String) value;
        return "[[[[" + val + "]]]";
    }

}



大家对 Excel2Entity 的评论 (全部 0 条评论)
{{repayCom.userName}}
Excel2Entity 相关问答 (全部 1 个问答)
顶部