Java - Apache POI - Ocorre um problema ao preencher linhas e células com loops (Excel)
Há um HashMap:
HashMap<String, ArrayList<String>> matrix = new HashMap<String, ArrayList<String>>();
Eu quero preencher uma folha de excel neste padrão:
hashkey1 | hashkey2 | hashkey3 | hashkey4
value1-1 | value2-1 | value3-1 | value4-1
value1-2 | value2-2 | value3-2 | value4-2
value1-3 | value2-3 | value3-3 | value4-3
value1-4 | value2-4 | value3-4 | value4-4
value1-5 | value2-5 | value3-5 | value4-5
As "hashKeys" são "Categorias" e cada chave possui sua própria ArrayList. Cada elemento de string da ArrayLists deve ser desenhado sob sua chave correspondente.
Aqui está o código atual:
int keyCell = -2;
int row = 5;
Row keyRow = worksheet.createRow(4);
Row valueRow = null;
for (Map.Entry<String, ArrayList<String>> e : matrix.entrySet()) {
keyRow.createCell(keyCell += 2).setCellValue(e.getKey());
for (String s : e.getValue()) {
if ((row - 5) < (e.getValue().size())) {
valueRow = worksheet.createRow(row += 1);
valueRow.createCell(keyCell).setCellValue(s);
} else {
valueRow.createCell(keyCell).setCellValue(s);
}
}
}
Funciona lindamente, exceto pelo fato de que o resultado se encaixa nesse padrão:
hashkey1 | hashkey2 | hashkey3 | hashkey4
value1-1 | | |
value1-2 | | |
value1-3 | | |
value1-4 | | |
value1-5 | value2-5 | value3-5 | value4-5
Eu acho que está funcionando exatamente como eu quero, mas as células são apagadas em cada loop por causa da nova linha que é criada em cada loop. Este é um problema muito desafiador. Eu tive uma enorme dificuldade para chegar a isso, e agora estou absolutamente preso. Nada funciona. As células SEMPRE são apagadas.
Bem, espero que este seja um tópico não muito prolixo. Eu realmente agradeço a todos por qualquer ajuda.