DevTrain

Autor: Andreas Rauch

Office Webcomponenten - Grafische Ausgabe von Daten

Mit Office 2000 haben Sie vielfälitge Möglichkeiten Office Komponenten in ASP zu nutzen. Eine davon ist Excel.

Vorraussetzung sind die Installation der Web Komponenten  (OWC) von der Office 2000 CD und bei der Entwicklung der Verweis auf die Office Web Komponenten. Mit Hilfe dieser OWC ist es beispw. möglich eine komplette Excel Anwendung online zu bringen. In unserem Beispiel wollen wir uns auf die grafische Ausgabe beschränken.

Bitte beachten Sie, daß das Objektmodell, dem von einer normalen Exel Anwendung nicht unterscheidet. Allerdings sind unter Office 2000 noch keine 3D Darstelllungen zu realisieren. Erst mit Office XP wird es dieses Feature geben.

Aber nun zu unserem Beispiel. Wir erstellen mit Hilfe einiger Daten, die wir per random generieren einen Datensatz, der die Basis für die Grafik sein soll. Das Beispiel ist hier extra kurz gewählt, damit wir uns auf das wesentliche konzentrieren können. Die Daten können natürlich auch aus Access, SQL Server oder XML stammen.

Die Grafik wird als temporäres *.gif erzeugt.

demo.asp
<%@ language="vbscript" %>
<html>
<body>
<h1>Chart mit Office Web Components
<%
Dim oChart, c, Categories(10), Vals(10), i, sCaption, nData, nOrg

ndata = 15

 ' Zur Darstellung werden mehrere Werte mit Random erzeugt
 for i = 1 to 10
  Vals(i) = nData * Rnd(100)
 next

' Erstellen des Chart Object
Set oChart = CreateObject("OWC.Chart")
Set c = oChart.Constants

' Setzten einzelner Parameter
oChart.Border.Color = c.chColorNone

' Chart hinzufügen und Parameter für Chart setzten
oChart.Charts.Add
' Charttype gibts wahrscheinlich erst in Office 10 als 3D
oChart.Charts(0).Type = oChart.Constants.chChartTypeColumnClustered
oChart.Charts(0).SeriesCollection.Add
oChart.Charts(0).SeriesCollection(0).SetData c.chDimValues, c.chDataLiteral, Vals

' Temporärer Dateiname
 sFname = Session("FSO").GetTempName & session.SessionID & ".gif"

' Export des Chart in Temp-Datei
 oChart.ExportPicture server.MapPath(sFname), "gif", 600, 512

' Link auf neue Temp Datei
 Response.Write "<img src='" & sFname & "'>"
%>
</body>
</html>


Dazu die global.asa

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
 Set Session("FSO") = CreateObject("Scripting.FileSystemObject")
 
 ' Variable: gibt die Zahl der in der Session erzeugten Files an
 Session("n") = 0
 
 ' timeout auf 1 Minute
 Session.Timeout = 1
End Sub

Sub Session_OnEnd
 ' Files des aktuellen session löschen
 Dim x
 For x = 0 to Session("n")-1
  Session("FSO").DeleteFile Session("sTempFile" & x), True
 Next
End Sub
</SCRIPT>

 


Erfasst am: 08.02.2001 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=300
© Copyright 2003 ppedv AG - http://www.ppedv.de