Ich bin fast da, um mein Problem zu lösen, aber nur in kleinen Problem stecken geblieben. Ich versuche, eine Excel-Datei von LinkedHashmap
zu drucken. Ich benutze Java und POI-Bibliothek für meinen Zweck.Schreiben Excel Blatt mit LinkedHashmap mit Java POI
Ich extrahiere einige Daten aus einer anderen Excel-Datei in LinkedHashmap und drucke diese Daten in neue Excel-Datei.
gespeicherten Daten in LinkedHashmap
sind groß und in folgenden Weise aufgeführt:
Keys | Values
-----------------------------------
Key1 : value1, value1, value1
Key2 : value2, value2, value2
key3 : value3, value3, value3
Was ich will:
Ausgabe in Excel-Datei sollte in folgendem Format angezeigt:
Excel_file_out_deserved.xslx:
+
key1 | value1
key1 | value1
key1 | value1
| // (if possible, empty cell space here will look good)
key2 | value2
key2 | value2
key2 | value2
| // (if possible, empty cell space here will look good)
key3 | value3
key3 | value3
key3 | value3
Was ich bekomme:
My_excel_file_out.xslx:
| value1 // (why my first column is empty?!, it should print keys there)
| value1
| value1
| value2
| value2
| value2
| value3
| value3
| value3
Was ich versucht:
FileOutputStream out = new FileOutputStream(new File("my_excel.xlsx"));
XSSFWorkbook newWorkbook = new XSSFWorkbook();
XSSFSheet sheet = newWorkbook.createSheet("print_vertical");
int row = 0;
// loop through all the keys
for(String key : linkMap.keySet()){
List<String> values = linkMap.get(key);
for (String value:values){
// print keys in 1st column
sheet.createRow(row).createCell(0).setCellValue(key); // why this doesn't work? :-/
// print values in 3rd column
sheet.createRow(row).createCell(2).setCellValue(value); // this works fine
row++;
}
}
newWorkbook.write(out);
out.close();
Mysteriously, wenn ich für-Schleife von Werten inneren entfernen, ohne sheet.createRow(row).createCell(0).setCellValue(key);
Linie Weglassen der äußeren Schleife korrekt Schlüsselwerte in der ersten Spalte Zeile drucken weise. Ich kann nicht herausfinden, wo ich Fehler mache. Vielen Dank.
Vielen Dank für die Antwort und Erklärung. Es wirkt wie ein Zauber. genau was ich wollte :) – Dhruvify