xml Daten über REST API importieren
#1
Hallo,

Ich habe in Excel ein Programm geschrieben, welches eine XML Tabellenstruktur auswertet.

Die XML Dateien werden täglich aktualisiert und über eine REST API ausgegeben. Dazu kommt aber, dass das ganze nur für authorisierte User abgreifbar ist, also Login + Passwort.

Den Link als auch die Einwahldaten habe ich. Ich möchte nun die xml Datei in ein Spreadsheet von mir laden und frage mich, ob und in wie weit dies möglich ist.


Im Grunde das selbe Anliegen wie in diesem Thread,

http://www.office-loesung.de/ftopic492896_0_0_asc.php

leider kam es hier nicht über die Fragestellung hinaus.

Das ganze wäre in Excel 2010, ich bekomme aber in baldiger Kürze 2016.

Liebe Grüße
Top
#2
Über Daten -> "Aus dem Web"; konnte ich das .xml Schema anzeigen lassen und auch importieren. Leider ist die automatische Tabelle die Excel dann erstellt falsch formatiert.

Wenn ich die XML Datei direkt aus der API entnehme und dann in Excel "reinziehe", erstellt Excel mir ein anderes tabellarisches Muster, welches passend ist. Leider weiß ich nicht, wie ich das ganze beheben kann. Zudem soll er dies auf Knopfdruck können und nicht händisch über "Aus dem Web" importieren.
Top
#3
Oh mein gott, es lag daran, dass ich es in ein neues Arbeitsblatt habe einfügen lassen... fragt mich nicht warum, aber das macht scheinbar alles kaputt
Top
#4
Ich konnte das ganze nun so lösen, dass ich das Importieren aus dem Web in ein bestehendes Arbeitsblatt gewählt habe, da benutzt er dann eine andere, die richtige Formatierung, als wenn er ein neues Spreadsheet erstellt. Ich hab das mit einem Makro "abgefilmt" und kann dies nun nutzen.

    ActiveWorkbook.XmlImport URL:= _
        "https://platzhaltere-mail.de/rest", _
        ImportMap:=Nothing, Overwrite:=True, Destination:=Range("$A$1")


Im Grunde funktioniert das ganze wirklich genau so wie ich es mir gewünscht habe, man kann auf Knopfdruck die Daten aktualisieren. Dafür muss man aber auf der Seite eingeloggt sein, das geht ohne Probleme wenn ich mich vorher in dem Excel internen Browser  beim "Importieren aus dem Web" mit meinen Logindaten angemeldet habe.


Was ich jetzt noch benötige, damit die User nicht immer "Importieren aus dem Web und dann das Passwort eingeben müssen", dass Excel w#re z.b.
A) Eventuell sieht, dass der User schon mit einem anderen Browser angemeldet ist und die Zugangsdaten daher bezieht.
oder
B) Es eine kleine Eingabemaske über ein UserForm gibt, die beim Aktualisieren aufpoppt, wo der User seine Logindaten eingeben kann die dann entweder direkt über den internen Browser eingegeben werden oder vlt
C) kann man das Passwort und die Logindaten beim Abrufen der XML Datei direkt mitsenden, also als eigener Befehl von Excel. Hier könnte man dann jedes mal die im UserForm eingegeben Daten nehmen um Sie einmal als Logindaten zu nehmen und danach direkt wieder zu löschen.

Falls das alles nicht geht, wäre es zumindest schön den internen Browser auf Knopfdruck mit einer festen Startseite (Die LoginSeite) öffnen zu können.

Ich freue mich über alle Ideen!

Liebe Grüße



Hmmm, ich hab das ganze mal aufgenommen mit der Option "In neues Spreadsheet" speichern. Wenn ich das mache, verhaut er mir zwar die Formatierung, beim Abrufen des Makro kommt es aber nicht zu einer Fehlermeldung sondern ein Fenster poppt auf, in dem man sich einloggen kann und dann wird das Makro ausgeführt. Also eigentlich perfekt. Gibt es die Möglichkeit meine Beiden Makros zu verbinden? Also dass er sich einloggt, aber in ein bestehendes Arbeitsblatt einfügt?

    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;https://testurl.rest" _
        , Destination:=Range("$A$1"))
        .Name = "test.rest"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = False
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingAll
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = True
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
Top
#5
Hallo,

fast die gleiche Solo-Show wie hier:

http://ms-office-forum.net/forum/showthr...?p=1772963&posted=1#post1772963
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#6
Das ist richtig, da ich das als spezielles Problem sehe, habe ich mich an 2 Quellen gewandt.

Bisher gab es auch noch keine Response, was mich in meinen Überlegungen bestätigt.

Entschuldigt bitte wenn dies gegen die Nettiquette verstößt, hab das Problem jetzt so gelöst das ich beide Makros hintereinander gelegt habe und einfach den ersten Import direkt wieder lösche.

Da ich euch nicht weiter stören möchte, bin ich mal raus.

PS: Dies hier wird jetzt auch in Beiden gepostet.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste