Artikel - Detailansicht

Icon Aktuelles Ausgabe in Excel

Als Programmierer kann man sich bei den Jungs vom Marketing sehr beliebt machen, wenn man ihnen zur Datenanalyse Microsoft Excel-Worksheets anstatt HTML-Webseiten zur Verfügung stellt. Das Erzeugen von Excel-Dateien ist mit ColdFusion relativ einfach.
Eine Möglichkeit besteht darin, einen HTML-Stream zur erzeugen, der von Excel in eine XLS-Datei 'on the fly' konvertiert werden kann. Dabei muss allerdings auf dem Client-Rechner Excel97 (oder grösser) installiert sein.
Das folgende Beispiel zeigt, wie einfach so eine Ausgabe zu realisieren ist:

<cfcontent type="application/vnd.ms-excel">

<cfoutput>
<TABLE border="1"> 
<TR>  
<!---spaltenueberschrift erzeugen--->
<TD><b>Feld1</b></TD>  
<TD><b>Feld2</b></TD>  
<TD><b>Feld3</b></TD> 
</TR> 

<!---zufaellige zeileanzahl erzeugen--->
<cfset line=RandRange(10,20)>  

<!---endwert fuer die excelfunktionen--->
<cfset ende=line+1>  

<!---datensätze simulieren--->
<cfloop index="i" from="1" to="#line#">   
<TR>   
<TD>#i#</TD>   
<TD>#RandRange(1,20)#</TD>   
<TD>#RandRange(1,20)#</TD>  
</TR> 
</cfloop>   

<!---tabellefooter mit farbe erzeugen--->
<TR bgcolor="cccccc">  
<TD>=ANZAHL(A2:A#ende#)</TD>  
<TD>=MITTELWERT(B2:B#ende#)</TD>  
<TD>=SUMME(C2:C#ende#)</TD> 
</TR>
</TABLE>
</cfoutput>


In der ersten Zeile setzen wir den MIME-Typ (Multipurpose Internet Mail Extensions) des zurückgegebenen Dokumentes.
Damit können wir das Dokument explizit mit einer Anwendung verknüpfen, in diesem Fall Microsoft Excel. Der Browser erkennt an dieser Zeile den Datentyp und kann entsprechen darauf reagieren. Netscape öffnet in diesem Fall Excel, wärend der Internetexplorer (ab 3) im allgemeinen in der Lage ist, die Exceloberfläche in den Browser zu integrieren.
Jetzt müssen wir nur noch die passenden Daten erzeugen, die Excel verarbeiten kann. Das ist in diesem Fall relativ einfach, denn Excel kann einen normalen HTML-Text interpretieren und selbsständig in ein Excelsheet konvertieren.

Wir erzeugen also mit den üblichen Mitteln eine normale HTML-Tabelle.
In der ersten Reihe werden die Tabellenüberschriften in Fett-Schrift erzeugt, dann erfolgt zeilenweise eine Datenausgabe, diesmal kein CFQUERY sondern reine Zufallszahlen. Dabei werden 3 Spalten und eine dynamische Anzahl von Zeilen geschrieben. Farb- und Formdefinitionen (z.B. Border) sind möglich und werden entsprechend konvertiert.

Excel kennt viele Funktionen und bietet einiges, um automatisch Berechnungen in bestimmten Spalten auszuführen. In der letzten Tabellenzeile ist im Beispielcode zu sehen, dass diese Funktionen ebenfalls in den HTML-Stream integriert werden können. Hier wird automatisch an das Ende der Tabelle einmal die Anzahl der enthaltenene Tabellenzeilen (Spalte A), der Mittelwert der Werte aus Spalte B und die Summe der Werte aus Spalte C berechnet und ausgegeben. Dabei ist zu beachten, dass in den Funktionen dynamisch das Ende der Zeile integriert werden muss.
Bei einem Seitenaufruf kann natürlich nur ein Worksheet gefülllt werden.



Steffen Goldfuss steffen@goldfuss.de - 29.11.2000

Zurück


Das deutsche ColdFusion-Forum cfml.de ist das Portal für Einsteiger und Experten zum Thema ColdFusion und der ColdFusion Markup Language (CFML).

© 2017 Webdesign & Hosting: CHC ONLINE Kassel | SOLVA Content-Management-System CMS
Urlaub-Angebote.de - Urlaub mit Bestpreis-Garantie buchen