toilet_paper_icon_153

JXLS – Excel-Dateien einfach erzeugen

Problem

Du möchtest Excel-Dateien im Wunschformat aus dem Java-Backend erzeugen, ohne Apache POI-Experte werden zu müssen?

Lösung

Mittels der Java-Bibliothek JXLS lassen sich Excel-Dateien mit einem speziellen Markup als Vorlage nutzen, um dann auf vergleichsweise einfache Art Excel-Dateien mit Daten aus dem Backend zu erzeugen.

Beispiel

Es soll eine Umsatzübersicht mit folgenden Detailsaus dem Backend für Excel bereitgestellt werden:
interface RevenueDetails {
    String getCustomerId();
    BigDecimal getRevenue();
    int getOrderCount();
};

Die Vorlage für das gewünschte Format wird samt JXLS-Markup in Excel erstellt.

TP#153 Bild 1 Excel
Folgender Code erzeugt dann eine Excel-Datei aus den Daten des Backends und passt die Formeln der Vorlage an die generierten Zeilen an:
final Iterable<RevenueDetails> revenueDetails = getRevenueDetails();
try (InputStream is = JxlsExcelWriter.class.getResourceAsStream("template.xlsx")) {
    try (OutputStream os = new FileOutputStream("target/revenue-details.xlsx")) {
        final var context = new Context();
        context.putVar("entries", revenueDetails);
        JxlsHelper.getInstance().processTemplate(is, os, context);
    }
}
TP#153 Bild 2 Resultat Excel

TP 153 Visual

Weiterführende Aspekte

---

Autor: Jan Wolter / Senior Software Engineer / Standort Leipzig

Cookie-Einstellungen

Diese Website verwendet Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und Zugriffe auf die Website zu analysieren. Zudem werden Informationen zu Ihrer Verwendung der Website an Partner für soziale Medien, Werbung und Analysen weitergegeben. Die Partner führen diese Informationen möglicherweise mit weiteren Daten zusammen, die Sie ihnen bereitgestellt haben oder die sie im Rahmen Ihrer Nutzung der Dienste gesammelt haben.

Weitere Informationen finden Sie in unserer Datenschutzerklärung. Dort können Sie nachträglich auch Ihre Cookie-Einstellungen ändern.

contact icon

Kontakt aufnehmen