Geschrieben von: Hubert Daubmeier
Kategorie: ASP Tricks
This printed page brought to you by AlphaSierraPapa
Hier nun wie versprochen der Folgeartikel zu Excel Dateien ohne Excel anzeigen, der beschreibt, wie Sie eine vorhandene Daten[bank]ausgabe in eine Exceldatei ausgeben, sodaß der Besucher Ihrer Seiten die Daten weiterverarbeiten kann.
Zunächst als Anmerkung: es gibt eine recht simple und schnelle Methode Daten von einer Webseite in Excel weiterzuverwenden. In Excel 2000 finden Sie unter DATEN - EXTERNE DATEN - NEUE WEBABFRAGE den folgenden Dialog.
Dort die Zieladresse eingeben, oder über die Schaltfläche "Web durchsuchen" die gewünschte Seite suchen. Die weiteren Option sind weitestgehend selbsterklärend. Auf jeden Fall erhalten Sie in kürzester Zeit Daten zur Weiterbearbeitung in Excel.
Zur späteren Aktualisierung positionieren Sie den Zellzeiger auf eine beliebige Zelle des Ausgabebereichs und wählen DATEN -DATEN AKTUALISIEREN. Alternativ können Sie beim Erstellen der Abfrage angeben, ob und in welchen Intervallen aktualisiert werden soll.
Eine ganze Palette weiterer Möglichkeiten und Feineinstellungen finden Sie bei vorhandenen Abfrageergebnissen in den Dialogen DATEN - EXTERNE DATEN - ABGRAGE BEARBEITEN und DATEN - EXTERNE DATEN - DATENBEREICH EIGENSCHAFTEN. Diese Optionen werden erst dann aktiv, wenn Sie bereits eine Abfrage durchgeführt haben und der Zellzeiger auf einer Zelle des Ausgabebereichs steht.
So nun aber zur dynamischen Bereitstellung einer Excel-Datei. Zur Verdeutlichung verwende ich das bekannte Beispiel aus Artikel "Excel Dateien ohne Excel anzeigen"{Link}. Ebenso wird die bereits bekannte Include-Datei readdb.asp verwendet. Für Ihre spätere Anwendung verwenden Sie zur Ausgabe natürlich Ihre Datenbank in einem beliebigen anderen Format.
Um es kurz zu machen, der ganze Trick liegt in der Angabe eines neuen ContentTypes in Zeile 2.
Wie gehabt, konzentrieren Sie sich auf Ihr Design und übernehmen Sie nur die relevanten Zeilen 2 und 3 sowie an passender Stelle den Aufruf der Unterroutine READDB.
<%@ LANGUAGE = VBScript %> <% Response.ContentType = "application/x-msexcel" %> <!-- #include file="include/readdb.asp" --> <html> <head> <title>Datenbank als Exceldatei ausgegeben</title> <link rel="stylesheet" type="text/css" href="Include/stylesheet.css"> </head> <body> <b>Datenbank als Exceldatei ausgegeben<br> <hr size="1" color="#000000"> <% call Readdb %> </body> </html>
Der Output sieht wie folgt aus (wenn man Open statt Save gewählt hat):
Beim ersten Testen werden Sie feststellen, dass Sie die Anfrage erhalten "Datei downladen". Dies ist durchaus korrekt. Standardmäßig überträgt der Server - unsichtbar im Hintergrund - immer einen ContentType. Der ist in aller Regel mit dem Inhalt "text/html" gefüllt, was der Browser als normal anzuzeigende Seite interpretiert und das naheliegende tut: die Seite anzeigen.
In unserem Fall kommt nun ein neuer ContentType "daher", den der Browser richtigerweise als Downloaddatei interpretiert und den Inhalt an die dazu passende Applikation übergibt (sofern der Benutzer dies erlaubt). Beim Internet Explorer wird diese Exceldatei je nach Einstellung im Browserfenster (Standard) oder als separate Datei in Excel angezeigt. Der Navigator lädt sie immer in ein eigenes Excelfenster.
Bei firmenintern Einsatz bietet sich ein weiterer Ansatz der in der täglichen Praxis durchaus seine Berechtigung hat, weil er für die Anwender pfeilschnell ist und gleichzeitig maximale Flexibilität bietet: Anzeige von Datenbankdaten in den Microsoft Office Web Components (OWC).
Zum Beispiel im Finanzbereich werden oft täglich Daten gesichtet, die oft keine weitere Bearbeitung benötigen. Die OWCs bieten flexible Anzeigefunktionen (siehe Screenshot), schnelles Filtern und Sortieren, und ermöglichen einfache Bearbeitungsschritte.
Wird mehr Funktionalität benötigt, können die Daten in Excel übernommen werden (siehe Excel-Schaltfläche).
Als Voraussetzung muss bei den Anwendern Office 2000 installiert sein und die Ausführung von ActiveX Controls im Intranet erlaubt sein. Ich will hier nicht über Sinn oder Unsinn des Einsatzes von ActiveX im Web diskutieren. Der Gedanke dahinter ist durch überwiegend unqualifizierte Beiträge nie recht verstanden worden. Falls Sie sich selbst ein Bild von der Sache machen wollen, finden Sie ein Beispiel das hier nicht weiter beschrieben ist, im Download.
Es würde mich freuen, wenn Sie das eine oder andere der hier gezeigten Beispiel aufgreifen und nutzbringend einsetzen können. Ich erlebe in meiner betrieblichen Praxis immer wieder über welch unbegreifliche Umwege manche Anwender an das an und für sich einfache Ziel kommen. Daß die dabei vertane Zeit besser genutzt werden könnte, dazu will dieser Artikel beitragen.
This printed page brought to you by AlphaSierraPapa
Klicken Sie hier, um den Download zu starten.
http://www.aspheute.com/code/20001128.zip
CSVs aus MDBs leicht gemacht
http:/www.aspheute.com/artikel/20010605.htm
Excel Dateien ohne Excel anzeigen
http:/www.aspheute.com/artikel/20001110.htm
Serverdaten clientseitig in Exceltemplates importieren
http:/www.aspheute.com/artikel/20020128.htm
©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.