填充Excel列表工具 Excel2Entity

码农软件 · 软件分类 · Excel开发包 · 2019-09-16 21:29:29

软件介绍

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 + "]]]";
    }

}


本文地址:https://codercto.com/soft/d/14754.html

Persuasive Technology

Persuasive Technology

B.J. Fogg / Morgan Kaufmann / 2002-12 / USD 39.95

Can computers change what you think and do? Can they motivate you to stop smoking, persuade you to buy insurance, or convince you to join the Army? "Yes, they can," says Dr. B.J. Fogg, directo......一起来看看 《Persuasive Technology》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具