2012-08-03 4 views
6

Ich habe eine Notwendigkeit, einen Excel-Blatt Bericht, wie die folgenden Vorlage sieht zu erzeugen - Excel ReportWelche Best Practices werden zum Rendern von Excel-Berichten in Java angewendet?

Ich weiß, dass diese Bibliotheken getan werden kann, mit wie JExcelApi und Apache POI. Ich würde jedoch gerne wissen, ob es Möglichkeiten gibt, dies zu erreichen, indem ich eine Vorlage schreibe, die dem Schreiben von Apache Velocity Vorlagen zum Versenden von E-Mails ähnelt.

Wenn es einen Standard-Good-Practice-Ansatz zum Generieren solcher Berichte gibt, was ist das?

+0

nach welcher Vorlage ?? – Sikorski

+0

Das hochgeladene Bild war, was ich meinte, als ich "Vorlage" sagte – ping

Antwort

7

Warum erstellen Sie nicht eine formatierte Vorlage mit Excel? Verwenden Sie Platzhalter (wie $ {name.of.field}) für die Werte, die ersetzt werden sollen, aber formatieren Sie alles anders als erforderlich. Verwenden Sie einen anderen Platzhalter, um das Ende der Vorlage zu markieren (dies ermöglicht Ihnen, Kommentare oder andere Daten außerhalb dieses Bereichs zu schreiben, um Ihre Vorlage zu dokumentieren).

dann entweder über JExcelAPI oder Apache POI,

  • Öffnen der Vorlagendatei, und suchen die End-of-Template-Marker.
  • öffnen Sie die Zieldatei
  • für jeden Datensatz, kopieren Sie Felder aus der Vorlage, $ {xyz} -Werten für ihren eigentlichen Inhalt und stoppen, sobald Sie erreichen Ihre End-of-Template Marker ersetzen.
  • schließen Ziel & Vorlage

Template Änderung wird extrem einfach sein. Das einzige Problem besteht darin, die Feldnamen synchron zu halten.

+0

Upvoted. Hört sich gut an. Ich würde gerne ein Kopfgeld für diese Frage eröffnen, um zu prüfen, ob es mehr Alternativen gibt. Vielen Dank! – ping

+0

Wie unterscheidet sich die Erstellung einer "gestalteten Vorlage" von der Verwendung von JXLS? Wenn nicht, bitte editieren Sie Ihre Antwort, um JXLS zu erwähnen. – ping

+0

Öffnen Sie ein neues Excel-Dokument. Formatieren Sie es nach Herzenslust. Füllen Sie es mit Platzhaltern. Nennen Sie es ein "Template", weil Sie es später replizieren und die Platzhalter ausfüllen werden. Wenn das JXLS tut, ist es mein Vorschlag, es nicht zu benutzen: wo ist das Bedürfnis? :-) – tucuxi

1

Sie können eine standardmäßige Java-Berichtsbibliothek wie verwenden und das Excel-Ausgabeformat verwenden.

+0

Proprietary Software ist keine Option für mich, solange es Open-Source-Bibliotheken gibt, die den Job erledigen. Trotzdem danke. – ping

Verwandte Themen