使用Apache POI库检索excel中属性(列)的唯一值列表

时间:2013-09-23 16:54:25

标签: java excel apache-poi

我正在阅读一个excel文件,其中包含数百万条用于项目工作的数据集记录。我的问题是如何填充列(或属性)的每个分类变量可以具有的唯一值列表。 POI库中是否有任何可以执行此任务的预定义函数,或者唯一剩下的选项是迭代每个单独的记录,然后与现有记录进行比较以确定新的记录。感谢。

1 个答案:

答案 0 :(得分:2)

一种方法是创建一个包含所有列的对象,然后覆盖此对象的hashCodeequals方法。

  1. 将Excel文件解析为集合

  2. 然后遍历该集合并将其添加到Set

  3. 包含每列的YourObject

    @Override
    public int hashCode(){
        return new HashCodeBuilder()
            .append(column1)
            .append(column2)
            .toHashCode();
    }
    
    @Override
    public boolean equals(final Object obj){
        if(obj instanceof YourObject){
            final YourObject other = (YourObject) obj;
            return new EqualsBuilder()
                .append(column1, other.column1)
                .append(column2, other.column2)
                .isEquals();
        } else{
            return false;
        }
    }
    

    将每个项目添加到Set

    Set<YourObject> setOfObjects= new HashSet<YourObject>();
    setOfObjects.add(yourObject);
    

    Set文档。