Java - Apache POI - Probleme beim Füllen von Zeilen und Zellen mit Schleifen (Excel)

Es gibt eine HashMap:

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

Ich möchte eine Excel-Tabelle mit folgendem Muster ausfüllen:

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  

Die "HashKeys" sind "Categories", und jeder Schlüssel hat eine eigene ArrayList. Jedes String-Element der ArrayLists wird unter seinem entsprechenden Schlüssel gezeichnet.

Hier ist der aktuelle Code:

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

Es funktioniert wunderbar, bis auf die Tatsache, dass das Ergebnis wie folgt aussieht:

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

Ich denke, es funktioniert genau so, wie ich es möchte, aber die Zellen werden bei jeder Schleife gelöscht, da bei jeder Schleife eine neue Zeile erstellt wird. Dies ist ein sehr herausforderndes Problem. Ich hatte große Schwierigkeiten, hierher zu kommen, und jetzt stecke ich fest. Nichts funktioniert. Die Zellen werden IMMER gelöscht.

Nun, ich hoffe, das ist kein allzu weit verbreitetes Thema. Ich danke Ihnen allen für jede Hilfe.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage