Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.


17.10.2007

Wie aus Excel-Mappen Java-Programme werden

Die Software "xAlerator" belässt Fachanwendern ihren Excel-Arbeitsplatz, wandelt diesen jedoch in einen reinen Editor zur Erzeugung von Java-Programmen um.
Editor für xAlerator: Hier eine Mitarbeitertabelle, aus der die Jubilare eines Monats gefiltert werden.
Editor für xAlerator: Hier eine Mitarbeitertabelle, aus der die Jubilare eines Monats gefiltert werden.

Microsofts Tabellenkalkulation gehört nach wie vor zu den beliebtesten Arbeitsmitteln so mancher Fachabteilung. Zum Beispiel im Versicherungsbereich, wo etwa Aufgaben der Lebensversicherungsmathematik von Fachanwendern häufig in Excel gelöst werden. Aus ihrer Projekterfahrung berichtet die Münchner Firma Xapio, dass solche Excel-Programme, vor allem wenn sie im größeren Zusammenhang wie dem Profit-Testing benötigt werden, vielfach an ihre Grenzen stoßen. Aber meistens nur "so gerade eben", was letztlich dazu führt, dass man an der Tabellenkalkulation festhält.

Forderungen an xAlerator

Logik, die sich mit einem herkömmlichen Tabellenkalkulator (Excel) formulieren lässt, soll auch mit xAlerator in der gleichen Weise dar-gestellt werden, der Programmaufbau soll also dem zweidimensionalen Schema des Spreadsheets folgen.

Was in einer Tabellenkal-kulation selbst nicht machbar ist, zum Beispiel Datenbankausgaben und Datenverdichtungen, soll Tool-seitig in von Excelgeläufiger Manier möglich sein.

Das System soll Modularisierung nicht nur erlauben, sondern nahelegen.

Das System sollte nach Möglichkeit keine Beschränkungen in Bezug auf den Datenumfang und die Größe der Prozesslogik aufweisen.

Das System ist nicht dia-logorientiert, es sollte aber Ergebnisse (Grafiken und Pivottabellen) als Output erzeugen können.

Die vom System generier-ten Java-Module müssen in anderen Anwendungen zum Beispiel als Klasse oder Web-Service verwendbar sein, ebenso umgekehrt.

Grenzen des Workbooks

Bei komplexeren Aufgaben wird dies jedoch problematisch, denn zur Bearbeitung müsste das Projekt eigentlich modularisiert werden. Wer ausschließlich in Excel arbeitet, tut sich schwer, derart diffizile Zusammenhänge innerhalb einer Arbeitsmappe darzustellen. Werden mehrere Workbooks verwendet, ergibt sich das Problem, dass besonders bei Datenbankzugriffen die einzelnen Workbooks zwar mit Daten gefüllt werden, der flexible Austausch dieser Informationen im Sinn der Gesamtanwendung jedoch nicht möglich ist. Der Versuch, sich in komplexeren Fällen mit Visual Basic zu behelfen, stellt laut Xapio oft keine Lösung dar, weshalb der Hersteller einen Ansatz suchte, bei dem der nichtprozedurale Anteil einer Aufgabe so weit wie möglich erhalten bleibt und es nur dann zur Programmierung kommt, wenn dies unvermeidlich ist.

Die Lösung sah für Xapio so aus: Der Prozess wird in Excel als Editor anhand von Beispieldaten dargestellt (Calculation by Ex-ample). Hat die Arbeitsmappe eine Schnittstellendefinition, weil sie als Unterprogramm oder Service verwendet werden soll, legt man als Aufrufparameter fest, welche Daten beziehungsweise Ranges übergeben werden sollen, wo die Empfangsbereiche liegen und trägt die entsprechenden Beispieldaten ein. Auch die in Excel mit MS-Query formulierten Datenbankzugriffe werden lediglich in Form eines Beispiels editiert. Anschließend wird die gesamte Excel-Mappe über die "Speichern-unter"-Funktion in eine XML-Datei umgewandelt und in den von Xapio entwickelten Java-Generator xAlerator eingelesen.

Calculation by Example

Dieser analysiert die XML-Datei, übernimmt die SQL-Befehle und Schnittstellendefinitionen und generiert daraus kompilierte Java-Module. Erst jetzt geht es "ernsthaft zur Sache", so der Hersteller, denn was mit einer oder mehreren Zeilen vorexerziert wurde, soll das Java-Programm für die ganze Datenmenge erledigen. Zur Ergebnisdarstellung erzeugt xAlerator wiederum eine XML- oder xls-Datei, die sich an der Eingabemaske orientiert. Zu berücksichtigen ist allerdings, dass das in einer Zelle dargestellte Datenaufkommen nun wesentlich größer ist, da es statt der wenigen Beispieldaten das Ergebnis der gesamten Berechnung abbildet.

Um die xAlerator-Makros auf dem Spreadsheet laufen zu lassen und den Generator anzustoßen, hat Xapio über C# noch einige Eingriffe in Excel vorgenommen. Das Produkt selbst ist in Java geschrieben und klinkt sich zum Beispiel mit dem Menüpunkt "Generiere" in die Tabellenkalkulation ein. (ue)