如何使用列名称读取Excell列中所有可用数据并将其存储在哈希集中(不包括列名称)

时间:2018-07-09 10:50:42

标签: java excel

我有一个有效的代码,但是问题是它甚至将列名都放入我的HashSet中。如果此代码有任何错误,请告诉我。

EXAMPLE EXCELL:
|PhoneNumber | name|
|1234567890  | xyz |
|2131242342  | zyx |
|2332233222  | yxa |
|7625423423  | abc |

public HashSet<String> getAllColumnValue(String columnName){
    HashSet<String> rowList = new HashSet<String>();
    int columnIndex = 0;
    boolean flage = false;
    String value=null;
    for (Row row : spreadsheet) {
        if(!flage){
            for (Cell cell : row) {
                cell.setCellType(CellType.STRING);
                value = cell.getStringCellValue().trim();
                if (value.equalsIgnoreCase(columnName)) {
                    columnIndex = cell.getColumnIndex();
                    flage = true;
                }
            }
        }           
        if (flage && !columnName.equalsIgnoreCase(value)) {
            Cell cell1 = row.getCell(columnIndex);
            if(cell1!=null){
               if(cell1.getCellTypeEnum() == CellType.NUMERIC){
                   if (DateUtil.isCellDateFormatted(cell1)) {
                     DateFormat df = new SimpleDateFormat("MMM/dd/yyyy");
                     Date date = cell1.getDateCellValue();
                     rowList.add(df.format(date));
            } else {
                            cell1.setCellType(CellType.STRING);
                                rowList.add(cell1.toString());  
                        }
                    } else {
                        cell1.setCellType(CellType.STRING);
                        rowList.add(cell1.toString());
                    }
                }
            }
    }
    return rowList;
}

可以说,上面是我的excell,它具有“电话号码”和“名称”作为“列”,每列上都有特定的一组值。现在,我尝试读取“电话号码”列中的数据,因此我正在致电getAllColumnValue(PhoneNumber)。我的期望是返回一个HashSet

[1234567890, 2131242342, 2332233222, 7625423423]

但是当我得到结果时将是

[1234567890, 2131242342, 2332233222, 7625423423, PhoneNumber]

在这里,我从另一个类文件中调用getAllColumnValue方法,并且此方法应根据我在调用该方法时指定的列,返回特定列中的所有值。不幸的是,当我打印Returned列表时,它甚至在Hashset上显示列名。

0 个答案:

没有答案