Excels Web Queries - Daten aus dem World Wide Web
© M + K Computermarkt, Heft 97/10
Autorin: Dr. Silvia Rothen, rothen ecotronics, Bern, Schweiz
Letzte Überarbeitung: 13.05.18
Daten aus externen Datenbanken kann Excel mit MSQuery schon seit der Version 5 verarbeiten. In Excel 97 ist es nun möglich, sich die Daten auch Online aus dem Internet holen. Interessant ist dies vor allem für Börsendaten, doch mit etwas Fachkenntnis lassen sich fast beliebige Informationen aus Web Sites mit Datenbankanbindung holen.
Inhaltsverzeichnis
- Beispielabfragen ausprobieren
- Daten aktualisieren
- Weitere Beispiele auf dem WWW
- Common Gateway Interface
- Eigene Abfragen
- Download der Beispieldatei
- Buchtipp
Beispielabfragen ausprobieren
Eine Webabfrage aus Excel zu starten, ist kinderleicht, denn es stehen bereits mehrere vorbereitete Abfragen bereit. Voraussetzung ist natürlich ein Konto bei einem Provider und ein funktionierender Internet-Anschluss.
Der Aufruf geschieht mit Daten - Externe Daten - Web-Abfrage ausführen. Danach öffnet sich im Office-Verzeichnis das Unterverzeichnis "Abfragen". Man klickt nun eine der auf .iqy endenden Dateien an, beispielsweise die in der deutschen Version mitgelieferte Datei "Aktienkurse von PC Quote, Inc.iqy". Mit der Schaltfläche "Importieren" startet man die Abfrage. Allerdings muss man erst noch ein paar Einstellungen tätigen und eine Frage beantworten, bevor Excel die Daten vom Netz zieht. Als erstes muss man entscheiden, ob Excel die Daten auf einem neuem Blatt oder auf dem bestehenden einfügt. Die hinter den Schaltflächen "Eigenschaften" und "Variablen" verborgenen Optionen lassen wir zur Seite. Ein OK bringt uns zu einer weiteren Dialogmaske, die uns nach Tickersymbolen fragt. Hier ist schon die erste Klippe für Börsenmuffel: Wer kennt schon Tickersymbole amerikanischer Aktien auswendig? Mein Tip: versuchen Sies mit MSFT oder wenn Ihnen Microsoft nicht so sympathisch ist mit BORL (Borland) oder ORCL (Oracle) und schliessen Sie Ihre Eingaben mit OK ab.
Unter Windows 95 öffnet sich als nächstes automatisch das Dialogfenster, mit dem Sie eine DFÜ-Verbindung zu Ihrem Provider herstellen. Falls dies nicht geschieht, müssen Sie die Verbindung selbst erstellen. Nun dauert es einen Moment, bis Ihr Konto angewählt und Ihre Identifikation überprüft ist. Dann erst erfolgt die Verbindung zum Webserver von PC Quote, die Abfrage und der Datentransfer zu Ihrem PC. Und schon haben Sie (fast) die neuesten Börsenkurse. Fast deshalb, weil PC-Quote die Gratisbörsenkurse mit einer Verzögerung von 20 Minuten publiziert. Die aktuellen Kurse sind der zahlenden Kundschaft vorbehalten.
Daten aktualisieren
Ist eine solche Abfrage einmal mit einem Excel-Blatt verbunden, können Sie Ihre Daten jederzeit aufdatieren. Die eingeblendete Symbolleiste "Externe Daten" stellt dazu die Schaltfläche "Daten aktualisieren" zur Verfügung. Wenn Sie die Tickersymbole nicht jedes Mal von Hand eingeben möchten, tragen Sie sie mit einem Leerschlag getrennt in eine Zelle ein. Klicken Sie dann die Schaltfläche "Abfrageparameter" auf der Symbolleiste "Externe Daten" an, wählen Sie die Option "Verwende den Wert der folgenden Zelle", und klicken Sie mit der Maus in die Zelle mit den Tickersymbolen, um ins Eingabefeld einen Bezug einzugeben. Die nächste Aktualisierung berücksichtigt nun die Aktien in der angegebenen Zelle, ohne dass Sie noch Eingaben tätigen müssen.
Weitere Beispiele auf dem WWW
Durch die ersten Erfolge beflügelt, stürzen Sie sich sofort auf die weiteren Beispielabfragen und testen auch diese. Doch viele sind es nicht. Zum Glück gelangen Sie mit der Abfrage "Weitere Web-Abfragen.iqy" auf den Microsoft Server, wo Sie zusätzliche Beispiele herunterladen können. Auch wenn die Seite die einzelnen Abfragen auf Deutsch erklärt, ist doch rasch klar, dass das ganze erstens sehr finanzmarkt- und zweitens sehr US-lastig ist. Also stellt sich sofort die Frage, ob man solche Abfragen nicht auch selbst erstellen kann? Natürlich kann man, allerdings braucht es aber einiges Hintergrundwissen über Datenbankanbindungen im World Wide Web und etwas Experimentierfreude. Deshalb ist es ganz gut, sich die Datei samples.zip mit allen Beispielen vom Microsoft-Server herunterzuladen. Durch das Studium bestehender Abfragen lernt man am meisten. Das ganze Geheimnis steckt in den Abfrage-Dateien mit der Endung .iqy. Es handelt sich um ganz gewöhnliche Textdateien, die man mit jedem Texteditor betrachten und verändern kann.
Common Gateway Interface
Eine Abfrage besteht zwar nur aus maximal vier Zeilen, doch deren Struktur muss man verstehen, wenn man selbst Abfragen schreiben will. Nun wird es leider etwas theoretisch: Ohne einen kurzen Ausflug in die Syntax des CGI, des Common Gateway Interface, lassen sich keine Datenbanken im Internet anzapfen. Das CGI ist eine Schnittstellendefinition, welche das Zusammenspiel eines Web Servers mit externen Anwendungen, z.B. Datenbanken regelt. Der Ablauf ist bei einem datenbankbasierten Web Site im Normalfall folgendermassen: Eine Benutzerin startet eine Abfrage, z.B. indem sie ein Formular auf einer Webseite ausfüllt und mit einer Schaltfläche abschickt. Die Abfrage landet beim Web Server, der sie an ein CGI-Skript weiterreicht. Das CGI-Skript wandelt die vom Web Server erhaltenen Informationen in eine Abfrage um, die eine Datenbank verarbeiten kann, z.B. eine SQL-Abfrage, führt diese Datenbankabfrage durch und setzt die erhaltenen Daten wieder in eine webfähige Form um, d.h. in HTML, bevor das Skript sie wieder an den Web Server zurückliefert. Der Server schickt das Resultat schliesslich als dynamische Webseite zur Benutzerin zurück.
Um eine solche Web-Datenbank anzuzapfen, braucht Excel maximal zwei Informationen: zwingend die Adresse des zuständigen CGI-Skripts und optional eine Parameterliste für die Abfrage. Beides kann man mit etwas Fachwissen aus dem Eingabeformular der zugehörigen Web-Seite herausholen. Allerdings kommt man um einen Blick auf den Source-Code nicht herum.
Eigene Abfragen
Im allereinfachsten Fall braucht es gar keine Parameter, sondern nur eine URL. Bei der Zürcher Kantonalbank findet man z.B. auf der Seite http://www.zkb.ch/stockex/price/forex-de.html die aktuellen Devisenkurse. Genau diese Adresse gibt man nun in die Abfragedatei mit der Endung .iqy ein. Die ganze Abfrage in der Datei CHZKBDevisenkurse.iqy besteht somit aus der folgenden einzelnen Zeile:
http://www.zkb.ch/stockex/price/forex-de.html
Man wählt in Excel Daten - Externe Daten - Web Abfrage ausführen, klickt auf die genannte Datei, gibt ein paar Optionen ein und schon lädt Excel die gewünschten Daten.
Mit Excel Web-Queries holt man die neuesten Daten vom Netz
Etwas kompliziertere Abfragen benötigen zusätzlich zur Web-Adresse noch einen oder
mehrere Parameter. Da es zwei verschiedene Methoden gibt, wie sich Formulareingaben von
einer Web-Seite an den Web-Server übermitteln lassen, nämlich GET und POST, gibt es eine
einzeilige und eine zweizeilige Syntax. Bei GET hängt man die Parameter nach einem
Fragezeichen direkt an die Adresse, bei POST stehen sie ohne Fragezeichen auf einer
separaten Zeile. In beiden Fällen trennt man mehrere Parameter jeweils durch &. Für
den einzelnen Parameter gilt die Syntax Parametername=Wert
. Direkt eingeben
lassen sich nur Zahlen, Gross- und Kleinbuchstaben sowie die Sonderzeichen Punkt,
Bindestrich und Unterstrich. Anstelle von Leerzeichen stehen Pluszeichen. Alle anderen
Zeichen müssen Sie mit % und ihrem Hexcode angeben. Den Hexcode eines beliebigen Zeichens
findet man in Excel mit folgender Formel:
=DEZINHEX(CODE(A1))
Ob eine bestimmte Abfrage GET oder POST verwendet, finden Sie heraus, indem Sie den
Source-Code der Seite durchsuchen. Im Netscape-Menü benutzt man dazu View - Document
Source. Die Parameter einer Abfrage stammen immer Normalfall aus Formulareingaben, deshalb
suchen Sie den Beginn des Eingabeformulars mit dem Code <FORM ..
In diesem
HTML-Tag steht irgendwo METHOD="POST"
oder METHOD="GET"
.
Die Parameter stammen nun aus den Eingabefeldern. Im HTML-Code erkennt man diese an den Tags
<INPUT NAME="Feldname
".. oder <SELECT
NAME="Feldname"
.. bei Listenfeldern. Den Wert hinter dem Gleichzeichen
benötigen Sie für Ihre Abfragedatei ebenso wie die Formulareingaben. In der Abfragedatei
ergibt dies: Feldname=Eingabewert
. Ein einfaches Abfragebeispiel, das die
Methode GET verwendet, und einen einzigen Parameter enthält, könnte etwa so aussehen:
http://www.swissquote.ch/cgi-bin/mfs/stockquote?symbols=CH00008846654
Damit fragt man auf dem Web Site der Schweizer Firma Stockquote anhand der ISIN-Nummer den Aktienkurs von Logitech ab.
Bei mehreren Parametern müssen Anzahl und Reihenfolge übrigens genau mit dem Source-Code übereinstimmen, damit die Abfrage klappt. Beachten Sie dabei, dass ein Formular auch versteckte Felder enthalten kann. Diese finden Sie nur im Source-Code. Sie sehen etwa folgendermassen aus:
<INPUT TYPE=HIDDEN NAME=Parametername VALUE=Parameterwert>
In der folgenden Beispielabfrage, mit der Sie in der Datenbank von Immosearch Wohnungen in der Stadt Bern suchen (Methode POST), kommen mehrere Parameter und die meisten der besprochenen Elemente vor:
http://www.anzeiger.ch/cgi-win/immosrch.exe
Kanton=BE&Gemeinde=Bern&NUTZUNG=Mietwohnung&Groesse=nicht+einschr%E4nken&Flaeche=&MaxPreis=&PREISART=CHFMT&MaxAnz=25
Diese Abfrage gibt die resultierenden Datensätze nicht in Tabellenform zurück. Wenn Sie nicht einfach ein leeres Blatt erhalten wollen, darf deshalb die hinter der Schaltfläche Datenbereich-Eigenschaften versteckte Option "Nur HTML-Tabellen importieren" deshalb nicht angekreuzt sein.
Diesen Zeilen können optional noch zwei weitere Zeilen vorangestellt sein. Die erste Zeile kann den Abfragetyp enthalten. Zur Zeit ist nur die Eingabe "WEB" erlaubt. In der zweiten Zeile steht die Version. Auch hier gibt es nur einen möglichen Eintrag, nämlich "1". Diese zwei Zeilen kommen in einer Abfrage immer gemeinsam vor: Entweder man stellt sie beide voran oder man lässt sie beide weg.
Noch ein letztes Element fehlt uns bei der Syntax von Abfragedateien. Sie können auch
Abfragen erstellen, die nicht jedes Mal die selben Parameterwerte benutzen, sondern bei
denen Sie vor jeder Aktualisierung die Parameterwerte entweder in ein Eingabefeld oder in
eine bestimmte Zelle einer Excel-Tabelle eingeben. Statt exch=USD
steht dann
z.B. in der Parameterliste exch=["exch","Welche Währung möchten Sie
konvertieren?"]
.
Wie Sie im folgenden vierzeiligen Beispiel sehen, kann man das nicht nur für einen Parameter, sondern auch für mehrere machen:
WEB
1
http://www.oanda.com/cgi-bin/ncc
exch=["exch","Welche Währung möchten Sie
konvertieren?"]&value=1&lang=de&date=["date","Geben Sie
ein Datum ein"]&date_fmt=normal&expr=["expr","In welche
Währung möchten Sie konvertieren?"]
Download der Beispieldatei
Mit Hilfe der vorgestellten Beispiele und der von Microsoft zur Verfügung gestellten Abfragen sollten Sie nun fähig sein, eigene Web Queries zu erstellen. Sie können übrigens eine gezippte Datei mit einer Excel-Arbeitsmappe und zahlreichen Abfragedateien herunterladen. Sie enthält nicht nur die im Text vorgestellten Beispiele, sondern auch zahlreiche weitere Abfragen, insbesondere für Börsenkurse in Deutschland und der Schweiz.
Achtung:
- Die Beispielarbeitsmappe läuft nur unter Excel97 und unter Windows95 oder Windows NT.
- Der Download erfolgt auf eigenes Risiko. Für die Funktionsfähigkeit der Datei und für etwaige Schäden übernehmen wir keinerlei Garantie. Die Excel-Arbeitsmappe enthält auch einen Makro. Falls Sie Angst vor Makroviren haben, verzichten Sie auf die Aktivierung dieses Makros. Alle Arbeitsblätter ausser jenes mit den Logitech-Zeitreihen funktionieren auch ohne diesen Makro.
- Die Datei ist mit Passwort geschützt, so dass zwar Daten importiert und einzelne Blätter bearbeitet, aber keine Tabellen hinzugefügt oder entfernt werden können. Ausserdem lässt sich der Copyright-Hinweis nicht entfernen.
Klicken Sie hier, um die gezippte Datei WebQuerySite.zip (179 KB) mit der Excel-Arbeitsmappe und 14 Abfragen (.iqy-Dateien) herunterzuladen.
Buchtipp
Und übrigens gibt's nun "Excel 2000 Direkt", das Excel-Buch der Autorin, als Antiquariatsartikel bei Data Becker für schlappe Euro 2,53. Bestellen Sie mit dem Stichwort "excel 2000 direkt" unter Data Becker.
Diese Webseite wurde am 21.05.18 um 17:10 von rothen ecotronics erstellt oder überarbeitet.
Printed on 100% recycled electrons!