填充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

算法设计与分析

算法设计与分析

陈慧南 / 电子工业出版社 / 2006-5 / 26.80元

《算法设计与分析:C++语言描述》内容分为3部分:算法和算法分析、算法设计策略及求解困难问题。第1部分介绍问题求解方法、算法复杂度和分析、递归算法和递推关系;第2部分讨论常用的算法设计策略:基本搜索和遍历方法、分治法、贪心法、动态规划法、回溯法和分枝限界法;第3部分介绍NP完全问题、随机算法、近似算法和密码算法。书中还介绍了两种新的数据结构:跳表和伸展树,以及它们特定的算法分析方法,并对现代密码学......一起来看看 《算法设计与分析》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器