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> |