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

Lighttpd源码分析

Lighttpd源码分析

高群凯 / 机械工业出版社 / 2010-3 / 59.00元

本书主要针对lighttpd源码进行了深度剖析。主要内容包括:lighttpd介绍与分析准备工作、lighttpd网络服务主模型、lighttpd数据结构、伸展树、日志系统、文件状态缓存器、配置信息加载、i/o多路复用技术模型、插件链、网络请求服务响应流程、请求响应数据快速传输方式,以及基本插件模块。本书针对的lighttpd项目版本为稳定版本1.4.20。 本书适合使用lighttpd的人......一起来看看 《Lighttpd源码分析》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具