POI Excel sortieren

Status
Nicht offen für weitere Antworten.

schlaubie

Bekanntes Mitglied
Hallo Zusammen,

gibt es mit POI eine elegante Methode das Excel-Sheet nach mehreren Spalten zu sortieren.

Z.B Spalte 4 Aufwärts, 3 Abwärts, ...

Bis jetzt hab ich es mit shiftRow gemacht aber da muss es doch eigentlich was besseres geben oder?
 
Ich würde einfach Row[] durch Arrays.sort() mit einem selber implementierten Comparator hauen und danach von 0 an wieder manuell einfügen. Wär zumindest der einfachste (und wohl auch schnellste Weg -> Sortfunktion ist schnell implementiert).
 
Kanst du mir ein Beispiel schreiben wie dies mit POI gehen soll. Eine HSSFSheet getrows() Methode gibt es leider nicht! nur getRow(int rownummer) und die Row implementiert schon das Comparable interface. Die Implementierung sortiert aber leider nach der rownummer.
 
Das sollte folgendermassen funktionieren (ungetestet):
Java:
List<HSSFRow> sortedRows = new ArrayList<HSSFRow>();
for (HSSFRow row : hssfSheet) {
    sortedRows.add(row);
}
sortedRows = Collections.sort(sortedRows, new Comparator<HSSFRow>() {
    public int compare(HSSFRow row1, HSSFRow row2) {
        // dein code
    }
});
 
Hallo zusammen.

Erstmal einen herzlichen Dank an den faetzminator.
Ich habe einen separaten ExcelComparator geschrieben undmir die Zeilen durch ihn sortieren lassen.

Dies hat wunderbar und vorallen performant funktioniert. Im nachhinein kann ich nur sagen man sollte die Methode shiftRow nicht in einer Schleife benutzen, da diese sehr unperformant ist. 3 Sekunden um 3000 Zeilen um eine Zeile nach oben zu verschieben. --> Immer schön einen eigen Comarator schreiben und dann funzt es auch! 🙂
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben