Thanks to visit codestin.com
Credit goes to github.com

Skip to content

excel import / excel etl / poi / etl

Notifications You must be signed in to change notification settings

imview/rt-excel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

基于POI的excel导入中间件
多种自由组合方式,帮你轻松实现数据转换和校验
1.excel转换成自定义对象集合
2.excel转换成自定义对象集合+自定义转换规则
3.excel转换成自定义对象集合+自定义转换规则+单元格数据通用验证规则
4.excel转换成自定义对象集合+自定义转换规则+单元格数据通用验证规则+自定义验证规则
5.excel转换成自定义对象集合+单元格数据通用验证规则
6.excel转换成自定义对象集合+单元格数据通用验证规则+自定义验证规则

image
注解的使用范围
image

注解的使用示例,继承自BaseRowEntity,会附加isSuccess、message两个字段,用于填充转换、检验结果
image
excel模板测试数据
image

使用步骤
1.实例化对象

ExcelWorksheet worksheet = new ExcelWorksheet(TestClass.class, "template.xls");

构造函数有三个重载方法

public ExcelWorksheet(Class<T> clazz, String pFilePath)
public ExcelWorksheet(Class<T> clazz, String pFilePath, int pSheetIndex)
public ExcelWorksheet(Class<T> clazz, String pFilePath, int pSheetIndex, int pTitleRowIndex)

2.1.1 excel转换成自定义对象集合

List<TestClass> list = worksheet.transform();
list.forEach(m -> System.out.println(m.toString()));//输出结果见下面【图1】

2.1.2 excel转换成自定义对象集合+自定义转换规则

list = worksheet.transform(m -> {
	TestClass entity = ((TestClass) m);
	entity.column1 = entity.column1==null?"":entity.column1 + "__postfix";
});
list.forEach(m -> System.out.println(m.toString()));//输出结果见下面【图2】

2.2.1 excel转换成自定义对象集合+单元格数据通用验证规则

List<TestClass> list2 = worksheet.check();
list2.forEach(m -> System.out.println(m.toString()));//输出结果见下面【图3】

2.2.2 excel转换成自定义对象集合+单元格数据通用验证规则+自定义验证规则

worksheet.getCell("column3").addChecker(event -> {
	ServiceResult res = new ServiceResult();
	if (StringUtils.isNotBlank(event.getValue())) {
		Row row = event.getRow();
		ExcelCell c4 = event.getCell("column4");
		row.getCell(c4.getIndex()).setCellType(CellType.STRING);
		if (row.getCell(c4.getIndex()).getStringCellValue().equals(event.getValue())) {
			res.failed(String.format("[%s]不能等于[%s]", event.getCell().getTitle(),c4.getTitle()));
		}
	}
	return res;
});
list2 = worksheet.check();
list2.forEach(m -> System.out.println(m.toString()));//输出结果见下面【图4】

2.2.3 excel转换成自定义对象集合+自定义转换规则+单元格数据通用验证规则+自定义验证规则

list2 = worksheet.check(m -> {
	TestClass entity = ((TestClass) m);
	entity.column1 = entity.column1 + "__postfix";
});
list2.forEach(m -> System.out.println(m.toString()));//输出结果见下面【图5】

【图1】 image
【图2】 image
【图3】 image
【图4】 image
【图5】 image

疑问解答
QQ 373119611

About

excel import / excel etl / poi / etl

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages