[FOSSGIS-Talk] ***SPAM*** Re: Expertise bei Erstellung von JasperReport-Template für Export in Excel gesucht

Thomas Wölk thomas.woelk at gmail.com
Mi Apr 22 13:07:31 CEST 2026


Die Standardtipps aus den Foren scheitern meistens daran, dass der
klassische JRXlsExporter pixelbasiert arbeitet und Subreport-Inhalte
unabhängig von der Band-Struktur in Zellen presst.

   1. Welche JasperReports-Version setzt du ein? (Ab 6.x gibt es den
   JRXlsxMetadataExporter, der für tabellarische Exports deutlich besser
   geeignet ist als der normale XLSX-Exporter.)
   2. Exportierst du über JRXlsExporter, JRXlsxExporter oder den
   Metadata-Exporter? Das macht bei Sheet-Breaks einen echten Unterschied.
   3. In welchem Band liegt dein Subreport aktuell – Detail, Summary oder
   eigenes Group-Band?

Der Ansatz, der bei mir am zuverlässigsten war, sieht grob so aus:

*Exporter:* JRXlsxMetadataExporter statt des normalen XLSX-Exporters. Der
schreibt keine Pixel-Raster, sondern echte Tabellen mit einer Zeile pro
Datensatz und einer Spalte pro Feld. Genau das, was du für Excel willst.

*Sheet-Break zwischen Main- und Subreport:* Nicht über one.page.per.sheet lösen
(das führt bei mehrseitigen Main-Reports sofort zu zerbrochenen Sheets),
sondern gezielt per Element-Property auf dem Subreport-Element:

<property name="net.sf.jasperreports.export.xls.break.before.row" value="true"/>

Und den Sheet-Namen ebenfalls per Property steuern, z.B. in der
Report-Properties-Section oder direkt auf dem Subreport-Element:

<property name="net.sf.jasperreports.export.xls.sheet.names.all"
value="Hauptdaten/Details"/>

Der Slash trennt die Sheet-Namen in der Reihenfolge ihres Auftretens.

*Tabellenkopf:* Im Column Header oder - für den Metadata-Exporter meist
sauberer – über Column Names per Property pro Feld:

<property name="net.sf.jasperreports.export.xlsx.column.name.Kundennummer"
value="Kundennummer"/>

*Datenfluss:* Main- und Subreport bekommen über Parameter (
SUBREPORT_PARAMETERS_MAP oder einzelne Parameter) dieselben Filter-Werte,
führen aber eigenständige SQL-Queries aus. Das ist unproblematisch, solange
der Subreport als .jasper kompiliert und korrekt referenziert wird.

*Typische Fallstricke, an denen die Foren-Lösungen oft scheitern:*

   - Elemente im Main-Report überlappen pixelmäßig mit dem
   Subreport-Bereich – dann mergt Jasper Zellen kreuz und quer. Fix: alle
   Elemente in exakt gleicher X-Position und Breite, isRemoveLineWhenBlank
    setzen.
   - one.page.per.sheet=true in Kombination mit mehrseitigem Main-Report
   bricht den Main-Report auf viele Sheets auf. Stattdessen
   remove.empty.space.between.rows=true und gezielte Break-Properties.
   - JRXlsxMetadataExporter ignoriert Band-Layouts – was hier Feature,
   nicht Bug ist, aber überrascht, wenn man gestalterische Elemente erwartet.

Wenn du mir sagst, mit welcher Version und welchem Exporter du arbeitest
und wie deine bisherige .jrxml-Struktur ungefähr aussieht (Band-Zuordnung
von Main-Tabelle und Subreport), baue ich dir ein minimales lauffähiges
Template-Gerüst, das beide Sheets sauber erzeugt - ohne Gewähr.
-- 
Mit freundlichen Grüßen
Thomas Wölk


Am 22.04.2026, 11:31:09 schrieb Daniel Cebulla via FOSSGIS-Talk-Liste <
fossgis-talk-liste at fossgis.de>:

> Hallo liebe FOSSGIS-Community,
>
> gibt es jemanden in der Runde, der sich gut mit der Erstellung von
> JasperReport-Templates auskennt?
>
> Ich möchte ein Template erstellen, welches für den Export in Excel
> gedacht ist. Das Template soll einen Subreport enthalten, dessen Inhalt
> in der Excel-Datei in ein eigenes Tabellenblatt geschrieben werden soll.
> Beide Tabellen sollen jeweils einen Tabellenkopf und entsprechende
> Zeilen für die Daten bekommen (wie halt eine Tabelle aufgebaut ist).
> Die Daten kommen aus einer Postgresql-Datenbank. Haupt- und Subreport
> bekommen die gleichen Features als Input, haben jedoch eigene SELECTs
> auf die Datenbank.
>
> In diversen Foren und Beiträgen finden sich verschiedene Lösungen (one
> page per sheet, extra Elemente mit sheet break points, ...), jedoch
> waren keine davon bisher bei mir zielführend ...
>
> Evtl. hatte das schon mal jemand als Use Case und kann mir weiterhelfen,
> dann gerne melden, vielen Dank!
>
> Liebe Grüße
> Daniel
>
> --
> im Auftrag
> Daniel Cebulla
> Anwendungsbetreuer GIS
>
> Telefon: 03641 49-5190      E-Mail: daniel.cebulla at jena.de
>
> Kommunale Informationstechnik und Telekommunikation Jena (KITT)
>
> Optimierter Regiebetrieb    Regiebetriebsleiter: Dr. Arndt Döhler
> der Stadt Jena              Paradiesstr. 6, 07743 Jena
>
> kitt at jena.de                USt.-ID DE150546569
> rechnungen-kitt at jena.de
>
> --
> ....................................................................
> FOSSGIS-Konferenz 2027 mit OpenStreetMap-Event in Heidelberg!
> 09.-13. März 2027                 https://www.fossgis-konferenz.de/
>
> FOSSGIS Vereinstermine:
> https://fossgis.de/aktivit%C3%A4ten/termine/
>
> FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
> GIS-Bereich und Freier Geodaten!
> https://www.fossgis.de/          https://mastodon.online/@FOSSGISeV
> ____________________________________________________________________
> FOSSGIS-Talk-Liste mailing list
> FOSSGIS-Talk-Liste at fossgis.de
> https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
>


Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste