Я пытаюсь написать лист Excel с использованием POI и hashMaps. Мой код успешно создает и заполняет лист excel, но не вся информация записывается на лист. В режиме отладки, похоже, написано 5 пар ключей, значений, а затем петли до начала с ключом [0]. Может ли кто-нибудь сказать мне, где ошибка в моей логике?Запись листа excel с использованием poi и hashmaps
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;
}
Заранее благодарен!
Я получаю только три строки данных, но когда я запускаю их же и печатаю на листе csv, я получаю 4060 строк, любая помощь будет оценена. – rhennigan
Сколько записей у вас есть в этом HashMap? – Guillaume
Я ввожу 13 строк в массив на ключ, мне нужно, чтобы он был динамическим, чтобы допускать различные количества деталей, поскольку на ViN могут быть тысячи или десять тысяч частей. – rhennigan