poi读取excel 转换实体_Excel2Entity:   Excel2Entity Excel2Entity实现了Java POI对xls文件的读取功能的封装,实现了批量导入Excel中的数据时...

Excel2Entity是一个Java库,用于利用Apache POI读取xls文件并将其内容转换为对应的Java POJO实体对象。它支持字段类型校验和自定义规则,适用于批量数据导入场景。通过注册新字段类型和自定义校验规则,可以实现更灵活的数据处理。使用示例包括读取Excel文件、转换实体和处理异常。
摘要由CSDN通过智能技术生成

Excel2Entity

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

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

应用场景

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

安装配置

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

cc.aicode.java.e2e

ExcelToEntity

1.0.0.3

依赖

Excel2Entity依赖于Apache POI类库。

使用说明

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

普通实体创建

ExcelHelper eh = ExcelHelper.readExcel("111.xls");

List 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 {

// 字段检查

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

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Excel2Entity Excel2Entity实现Java POIxls文件读取功能封装实现批量导入Excel数据自动根据Excel数据行创建对应的Java POJO实体对象的功能。 该类库也实现了在创建实体对象对字段类型进行校验,可以对Excel数据类型合法性进行校验,通过实现扩展接口,可以实现自定义校验规则以及自定义实体对象字段类型等更加复杂的校验规则和字段类型转换。 应用场景 该类库主要用应用场景是在一般管理系统批量数据导入。 安装配置 Excel2Entity类库已经加入到Maven央仓库,如果你的项目使用了Maven,则可以通过添加下面的Maven依赖配置项将该类库加入到您的项目. cc.aicode.java.e2e ExcelToEntity 1.0.0.3 依赖 Excel2Entity依赖于Apache POI类库。 使用说明 使用示例请参考src/test/java/cc/aicode/e2e/Excel2Entity/AppTest测试用例。 普通实体创建 ExcelHelper eh = ExcelHelper.readExcel("111.xls"); List 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 { // 字段检查 public void check(Object value, String columnNam
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值