Excel’s 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

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 Sie’s 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.

Zurück zum Inhaltsverzeichnis


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.

Zurück zum Inhaltsverzeichnis


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.

Zurück zum Inhaltsverzeichnis


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.

Zurück zum Inhaltsverzeichnis


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.

[36 KB; Screenshot :Textfile mit Web Query, Web Daten in Netscape und Excel ]

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?"]

Zurück zum Inhaltsverzeichnis


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:

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.

Impressum

Zurück zu rothen ecotronics

Printed on 100% recycled electrons!