Freitag, 4. Oktober 2013

Excel generieren leicht gemacht

Wer schon einmal Apache POI zur Generierung von Excel Dokumenten verwendet hat, kennt wahrscheinlich Code, der so ähnlich aussieht wie der Folgende:


Man muss also relativ viel Code schreiben um ein sehr simples Dokument zu generieren. Auch die Wartbarkeit ist nicht ganz so dolle. Jede noch so kleine Änderung sorgt dafür, dass der Code angepasst werden muss. Wenn dann noch viel mit CellStyles gearbeitet wird, hört es irgendwann ganz auf.


Vor einiger Zeit wurde mir von dem Framework jXLS erzählt, mit dem sich Excel Dokumente deutlich einfacher generieren lassen.
Javaseitig ist für das gleiche Beispiel wie oben nur noch folgender Code notwendig:


Zusätlich wird noch ein Template benötigt. Das Template ist einfach eine Excel Datei, im Beispiel shopping-list.xls. Dem Template wird eine Map übergeben. In der Map befinden sich die Objekte an denen die Informationen abgefragt werden können, die in dem Excel Dokument dargestellt werden sollen.
Das Template sieht folgendermaßen aus:



Über Expression Language kann nun auf alle Objekte zugegriffen werden, die in der Map gespeichert und an das Template übergeben wurden. Es ist möglich über Listen zu itererieren und Informationen ein- bzw. auszublenden. Hintergrundfarben, Schriftarten, -größen etc. können im Template gepflegt werden und werden dann in das generierte Dokument übernommen.
So lange sich die darzustellenden Informationen nicht ändern, sondern nur die Art und Weise wie die Daten angezeigt werden sollen, muss nur das Template angepasst werden.
Das fertige Dokument sieht das folgendermaßen aus:


Weitere Informationen findet ihr hier: http://jxls.sourceforge.net/

Der Beispielcode befindet sich hier: https://github.com/gossie/jxls-demo

Keine Kommentare:

Kommentar veröffentlichen