我有一个有效的代码,但是问题是它甚至将列名都放入我的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上显示列名。