POI 및 hashMaps를 사용하여 Excel 시트를 작성하려고합니다. 내 코드가 엑셀 시트를 성공적으로 생성하고 채 웁니다.하지만 모든 정보가 시트에 쓰여지지는 않습니다. 디버그 모드에서는 5 개의 키, 값 쌍을 쓴 다음 키 [0]에서 시작으로 루프합니다. 누군가 내 논리에 실수가 어디 있는지 말해 줄 수 있습니까?poi 및 hashmaps를 사용하여 Excel 시트 작성
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet(make + " sheet");
int rowNum = 0;
ConcurrentHashMap <Integer, String[] > data = new
ConcurrentHashMap<Integer, String[]>();
data.put(rowNum++, new String[] {"VIN", "Make", "Model", "Year",
"Major Group", "Caption", "Cap Filter", "Illustration",
"Illus Filter", "PNC", "Part Name", "Part Number", "Quantity",
"Part Filter"});
for (Part p : plist){
String PNC = p.getPNC();
String quantity = p.getQuantity();
if(vFilterId.contains(p.getId())) {
data.put(rowNum++ , new String[] {vinId, make,
model, year, group, caption, capFilter, illusName,
iFilter, PNC, p.getName(), p.getPartNumber(),
quantity, "NONFILTERED"});
} else {
data.put(rowNum++ , new String[] {vinId, make,
model, year, group, caption, capFilter, illusName,
iFilter, PNC, p.getName(), p.getPartNumber(),
quantity, "NONFILTERED"});
}
}
int rowIndex = 0;
Set<Integer> keyset = data.keySet();
for (Integer key : keyset) {
Row row = sheet.createRow(rowIndex++);
Object[] objArr = data.get(key);
int cellIndex = 0;
for (Object obj : objArr) {
Cell cell = row.createCell(cellIndex++);
cell.setCellValue((String) obj);
}
}
try {
FileOutputStream fos = new FileOutputStream(outputFile);
workbook.write(fos);
fos.close();
System.out.println("XLS sheet written.");
} catch (IOException e) {
e.printStackTrace();
}
}
return ReturnConstants.SUCCESS;
}
미리 감사드립니다.
출력은 3 행 밖에되지 않지만 동일한 것을 실행하고 csv 시트로 인쇄하면 4060 행이 반환되어 도움을 얻을 수 있습니다. – rhennigan
해당 HashMap에 몇 개의 항목이 있습니까? – Guillaume
키 당 배열에 13 개의 문자열을 입력하려고합니다. ViN 당 부품이 수천 또는 수천 개가 될 수 있기 때문에 다양한 부품이 들어갈 수 있도록 동적이어야합니다. – rhennigan