Excel-Berichte mit PL/SQL erstellen

Letzte Woche war ich auf der DOAG Konferenz in Nürnberg und habe einen gut besuchten Vortrag über das Erzeugen von Excel-Dateien mit PL/SQL gehalten.

Jetzt will ich mein Versprechen einlösen und den zugehörigen Quelltext veröffentlichen.

Die Programme dienen ausschließlich zur Demonstration des technisch Möglichen und sollen Denkanstöße geben.
Für den produktiven Einsatz sind die Programme NICHT geeignet.
Der Funktionsumfang wurde ganz bewußt auf das Wesentliche reduziert.
Alles, was nicht wirklich benötigt wird, aber für einen produktiven Einsatz unerläßlich sind, fehlt.
So finden sich in den Skripten weder Storage-Klauseln für Tabellen, noch Excpetion-Handler.

Für fehlerhafte Daten, wirtschaftliche Verluste oder Frusterlebnisse kann ich keine Verantwortung übernehmen.

Da es sich um eine Demonstration handelt, gibt es auch keinerlei Support.
Feedback, Anregungen und Fragen sollten in den Kommentaren zu dem Blogeintrag unter

https://www.its-people.de/blog/?p=187

veröffentlicht werden. Um das SPAM-Aufkommen in den Griff zu bekommen, werden die Kommentare erst nach Sichtung freigegeben.

Vorrausetzungen:
Zugriff auf ein Schema in einer Oracle 10g Datenbank, oder neuer (getestet wurde bis zur aktuellen Version 11gR2).
Die Minimalen Berechtigungen für das Schema sind die Rollen CONNECT und RESOURCE.
Die Directories xmlfiles und excelfiles müssen mit entsprechenden Berechtigungen angelegt werden (create any directory).

Installation:

  1. Entpacken Sie das Archiv in einen Ordner ihrer Wahl.
  2. Laden Sie die Java-Klassen für die ZIP-Bearbeitung in die Datenbank
  3. Die Java-Klassen werden wie folgt geladen
    loadjava -u [user]/[passwort] -o -r -v jazzlib-binary-0.07.zip
    loadjava -u [user]/[passwort] -o -r -v ZipInputStream.class ZipOutputStream.class

    (unter Windows: loadjava.bat)

  4. Kopieren Sie die Dateien aus dem xmlfiles auf den Datenbankserver.
  5. Installation der Tabellen und PL/SQL Teile:
    Wechseln Sie ins Verzeichnis package.
    Bearbeiten Sie die Datei install.sql und passen Sie hier insbesondere die Pfade für die directories xmlfiles (Laden der Templates, etc)
    und excelfiles (Ausgabe der  Excel-Dateien) an. xmlfiles sollte auf das Verzeichnis aus (4.) zeigen.
    Führen Sie  install.sql aus
  6. Test:
    Als Test können Sie das „Wäre es nicht schön“-Skript aus meinem Vortrag ausführen:

set serveroutput on size unl

declare ex  integer; begin ex := gen_excel.erzeuge_bericht('Doag-Demo', 'select * from tabs', 'Tabs');
gen_excel.erzeuge_blatt(ex, 'Wilde Abfrage', 'select * from doag_data where rownum <100');
gen_excel.erzeuge_blatt(ex, 'Blatt mit komplexer Abfrage'
, 'select trunc(verkauft_am, ''MONTH''),verkaeufer, sum(umsatz)
from doag_data
group by trunc(verkauft_am, ''MONTH''), verkaeufer
order by 1' );
gen_excel.erzeuge_mappen(ex, 'xls:xlsx');
for ma in (select exma_id from excel_mappen where exbe_id =ex)
loop
gen_excel.schreibe_mappe(ex, ma.exma_id);
end loop;
end;

 

/

Wenn alles gut gelaufen ist, finden Sie im Verzeichnis excelfiles anschließend zwei neue Dateien: Doag-Demo.xls und Doag-demo.xlsx.

Hier sind die Dateien:

38-2010-K-DEV-Marz-Excel-Berichte-mit-PLSQL-Quellcode

38-2010-K-DEV-Marz-Excel-Berichte-mit-PLSQL-Praesentation-Demo-Scripts

38-2010-K-DEV-Marz-Excel-Berichte-mit-PLSQL-Praesentation

 

Das könnte Sie auch interessieren

Bleiben Sie informiert:

its-people hilft Ihnen...

Weitere Blogthemen:

its-people – wir machen Ihre IT moderner,
leistungsfähiger und sicherer

Erfahren Sie bei einem persönlichen Gespräch, wie wir Sie gewinnbringend unterstützen können. Suchen Sie sich einen passenden Zeitpunkt aus. Wir melden uns. Versprochen!