21xrx.com
2024-11-05 21:59:52 Tuesday
登录
文章检索 我的文章 写文章
用JavaEasyExcel读取数据并进行校验
2023-06-19 19:48:03 深夜i     --     --
JavaEasyExcel 数据校验 模型类

JavaEasyExcel是Java语言中一款基于注解的简易Excel读写操作类库,可以方便地进行Excel文件的读取和写入。本篇文章将展示如何使用JavaEasyExcel读取Excel中的数据,并进行校验。

JavaEasyExcel提供了读取Excel文件的API,可以通过以下代码实现:


// 定义Excel读取器

ExcelReader excelReader = EasyExcel.read(inputStream).build();

// 定义读取Excel的模型类

@Data

public class ExcelModel {

  @NotEmpty(message = "姓名不能为空")

  private String name;

  @NotNull(message = "年龄不能为空")

  @Min(value = 1, message = "年龄必须大于0")

  @Max(value = 120, message = "年龄不能超过120")

  private Integer age;

  @Email(message = "邮箱格式不正确")

  private String email;

}

// 定义数据校验器

public class ExcelDataValidator implements AnalysisEventListener {

  private List errorMsgList = new ArrayList<>();

  @Override

  public void invoke(ExcelModel excelModel, AnalysisContext analysisContext) {

    ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();

    Validator validator = validatorFactory.getValidator();

    Set > constraintViolations = validator.validate(excelModel);

    if (CollectionUtils.isNotEmpty(constraintViolations)) {

      for (ConstraintViolation constraintViolation : constraintViolations) {

        errorMsgList.add(constraintViolation.getMessage());

      }

    }

  }

  @Override

  public void doAfterAllAnalysed(AnalysisContext analysisContext)

  

  public List getErrorMsgList()

    return errorMsgList;

  

}

// 使用Excel读取器和数据校验器读取Excel文件

ExcelDataValidator excelDataValidator = new ExcelDataValidator();

excelReader.read(sheet, new ReadSheetParam().startRow(1).clazz(ExcelModel.class).headRowNumber(0)

    .needVerify(true).verifyHandler(excelDataValidator));

上述代码中,ExcelModel类是用于读取Excel数据的模型类。该模型类使用了Hibernate Validator中的注解进行属性的数据校验。ExcelDataValidator类是实现了AnalysisEventListener接口的数据校验器类。该校验器类的作用是在读取Excel数据时,对每行数据进行校验,并将错误信息保存在errorMsgList中。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复