jdk1.6을 기반으로 poi.jar를 사용하여 일부 Excel 2007 데이터를 탐색하려고합니다. 그러나 행을 탐색 할 때 HashMap()) 다음 행 데이터를 java.util에 추가하십시오. ArrayList.Map.clear() 그런 다음 목록에지도를 추가하십시오.
다음 반복기를 시작하면 먼저 Map.clear()를 호출하여 행 데이터를 지 웁니다. 그러나 ArrayList.add() 메서드를 다시 호출하면이 행 데이터가 이전 데이터보다 우선합니다.
Map<String, String> cellForRow = = new HashMap<String, String>();
List<Map<String, String>> rowForSheet = new ArrayList<Map<String, String>>();
for (int j = 0; j < sheet.getPhysicalNumberOfRows(); j++) {
row = sheet.getRow(j);
if (j == 0) {// the first row is title
titleRow = row;
continue;
}
if (row != null && titleRow.getPhysicalNumberOfCells() > 0) {
// cellForRow = new HashMap<String, String>();
cellForRow.clear();
for (int k = 0; k < titleRow.getPhysicalNumberOfCells(); k++) {// cell
cellForRow.put(getCellValue(titleRow.getCell(k)), getCellValue(row.getCell(k)));
}
}
rowForSheet.add(cellForRow);
}
다음 조각은 rowForSheet (목록)에 대한 디버그 로그
[{ Up =Stream, Email=XXX,Down =Stream},
{ Up =Stream, Email=XXX,Down =Stream},
{ Up =Stream, Email=XXX,Down =Stream},
{ Up =Stream, Email=XXX,Down =Stream},
{ Up =Stream, Email=XXX,Down =Stream}]
나중에 데이터가
당신을 했 오래된 데이터를 오버라이드 (override)를 보여?
왜 같은 맵을 여러 번 목록에 추가하겠습니까? – matt
너 뭐야? 문장을 끝내십시오. –