验证Excel导入的数据

时间:2013-11-16 15:39:57

标签: java apache-poi validation

我使用Apache POI框架导入包含30列的Excel工作表。我正在阅读每个单元格并将其插入数据库。

我需要验证每个列的不同条件,除了使用多个if else条件,并为每个列调用不同的方法还有其他方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

我对java的经验较少。可能有多种方法可以解决您的问题。但是我使用策略模式来设计一个通用的验证类,它可以用于不同类型的项目而不会出现丑陋的if-else块。虽然我不得不为不同类型的字段创建单独的验证方法,但我觉得这比if else阻塞更好。

interface IValidator<T> {
  boolean validate(T field);
}

class SomeFieldOne<T> implements IValidator<T> {
  public boolean validate(T field) {
    print("SomeFieldOne validation");
    return true; // return true/false based on validation
  }
}

class SomeFieldTwo<T> implements IValidator<T> {
  public boolean validate(T field) {
    print("SomeFieldTwo validate");
    return true; // return true/false based on validation
  }
}

class Context {
  private IValidator validator;

  public Context(IValidator validator) {
    this.validator = validator;
  }

  public boolean validate(String field) {
    return this.validator.validate(field);
  }
}

public class TestValidation {
  public static void main(String[] args) {
    Context context;

    context = new Context(new SomeFieldOne());
    print(context.validate("some field one"));

    context = new Context(new SomeFieldTwo());
    print(context.validate("some field two"));

    // test other fields ....
    // .........
  }
}