Java - Apache POI - Problemy z wypełnianiem wierszy i komórek za pomocą pętli (Excel)

Jest HashMap:

HashMap<String, ArrayList<String>> matrix = new HashMap<String, ArrayList<String>>();

Chcę wypełnić arkusz Excela tym wzorem:

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  

„HashKeys” to „Kategorie”, a każdy klucz ma swoją własną tablicę ArrayList. Każdy element ciągu znaków ArrayLists zostanie narysowany pod odpowiednim kluczem.

Oto prawdziwy kod:

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);
            }
        }
    }

Działa pięknie, z wyjątkiem faktu, że wynik jest zgodny z tym wzorem:

hashkey1 | hashkey2 | hashkey3 | hashkey4
value1-1 |          |          |            
value1-2 |          |          |            
value1-3 |          |          |           
value1-4 |          |          |           
value1-5 | value2-5 | value3-5 | value4-5  

Myślę, że działa dokładnie tak, jak chcę, ale komórki są kasowane w każdej pętli z powodu nowego wiersza, który jest tworzony w każdej pętli. To bardzo trudny problem. Miałem ogromną trudność, aby do tego dojść, a teraz jestem absolutnie utknięty. Nic nie działa. Komórki ZAWSZE zostają wymazane.

Mam nadzieję, że to nie jest zbyt ważny temat. Naprawdę dziękuję wszystkim za pomoc.

questionAnswers(1)

yourAnswerToTheQuestion