Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

XML-Fritzbox-Telefonbuch auflisten

Forumthread: XML-Fritzbox-Telefonbuch auflisten

XML-Fritzbox-Telefonbuch auflisten
11.08.2023 17:01:30
Joschi Witchcraft
Hallo Forum.

Ich nutze eine Fritzbox. Und darin ist auch ein Telefonbuch gespeichert. Dieses Telefonbuch habe ich als XML-File exportiert.

Nun möchte ich die Daten aus der exportierten File in einer Excel-Anwendung mit VBA einlesen. Mit geht es primär nicht um das Füllen einer Tabelle. Ich bin schon zufrieden, wenn mir jemand einen Code bereitstellen kann, um alle Inhalte der beigefügten Mini-Musterfile mit Hilfe von Debug.Print anzulisten.

Mein Ziel: ich möchte das Telefonbuch über eine Excel-Tabelle verwalten können. Danach möchte ich aus den Daten der Excel-Tabelle wieder eine XML-File erstellen, welche ich in die Fritzbox importieren kann. In diesem Bereich habe ich keine Probleme. Ähnliches habe ich schon gemacht.

Meine XML-File:
https://www.herber.de/bbs/user/162291.zip

Danke im Voraus in Gruß von Joschi
Anzeige

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
XML-Alternative
13.08.2023 09:53:14
Jan
Hallo

Warum unbedingt eine VBA Lösung?
Mein Tipp siehe Anhang eine PQ Lösung.
Datei Pfad muss angepasst noch werden im erweiterten PQ-Editor.
https://www.herber.de/bbs/user/162307.xlsx
XML-Alternative
13.08.2023 10:20:05
Joschi Witchcraft
Hallo Jan,

und wo finde ich die PQ-Lösung?

Gruß Joschi
Anzeige
XML-Alternative
13.08.2023 10:42:27
Luschi
Hallo Jan,

wenn das so einfach wäre mit dem Fritz!Box-Telefonbuch, würden sich die Antworten darauf im I-Net nur so überschlagen.
Bei mir sieht es beim PQ-Schritt 'Table0' so aus, wenn ich mit der Maus auf die contact-table klicke:
Userbild

Eigentlich braucht man in Excel ja eine XML-Schemadatei ( *.xsd), um die Zuordnung der XML-Einheiten korrekt darstellen zu können; diese wird aber von AVM nicht mitgeliefert und in PQ habe ich noch keine Stelle gefunden, wo man diese xsd-Datei angeben könnte.
In C# gibt es die Möglichkeit, so eine Schema-Datei sich auf der Basis der XML-Datei zu erzeugen, aber auch das ist noch nicht der Weisheit letzter Schluß, denn auch da gibt es noch einige Ecken und Kanten. Aber mit dieser erstellten xsd-Datei konnte Excel das Fritz!Box-Telefonbuch ganz gut öffnen und ich dann per Vba eine Übersicht aller Einträge nachbauen bei ca. 1.100 Einträgen.
Auf alle Fälle hat sich AVM sehr viel Mühe gegeben, das Telefonbuch hinter 7 Siegeln zu verstecken, denn es ist mir bis jetzt noch nicht gelungen, die Änderungen (Schreibfehlerbereinigung, Löschen ungültiger Einträge, neue Kontaktdaten usw. ) sauber in die Fritz!Box zurück zu importieren.

Gruß von Luschi
aus klein-Paris

Anzeige
XML-Alternative
13.08.2023 11:29:56
Jan
Hallo Luschi

Danke erstmal für dein Feedback.
Wenn ich dich jetzt richtig verstanden habe ist meine Lösung falsch, sehe ich das richtig?
Hast du aus dieser XML Datei noch mehr an Daten aus lesen können mit PQ außer diese 4 Zeilen?
XML-Alternative
13.08.2023 18:22:14
Luschi
Hallo Jan,

meine Erklärungen dazu beruhen auf einer Original xlm-Telefondatei von Fritz!Box mit über 1.100 Kontakt-Einträgen; z.Z. kann ich mit Hilfe der in C# erstellten xsd-Datei die Daten der xml-Datei in Excel einlesen und dort auch verändern. Nur das zurückschreiben in eine xml-Datei per Excel will mir noch nicht so recht gelingen, denn die Fritz!Box meckert beim Importieren, bzw. zeigt die Daten dann nicht korrekt an.
Dieses Problem läuft aber auf meiner Prioritätenliste z.Z. aber unter ferner liefen.

Gruß von Luschi
aus klein-Paris

Anzeige
XML-Fritzbox-Telefonbuch auflisten
12.08.2023 08:23:44
Joschi Witchcraft
Hallo Thorsten.

Vielen Dank für Deine Infos. Diese Ecke von Excel kannte ich bisher nicht, hatte sie allerdings auch nicht vermisst.

Der Import hat grundsätzlich funktioniert. Wenn ich dann allerdings versuche, diese Tabelle wieder als XML zu exportieren, erhalte ich die Fehlermeldung "Die XML-Daten können niicht exportiert oder gespeichert werden. Die XML-Zuordnungen in diesem Arbeitsblatt sind nicht exportierbar."

Habe ich irgendwo einen Gedankenfehler oder was ist die Ursache für diese Meldung?

Gruß Joschi
Anzeige
AW: XML-Fritzbox-Telefonbuch auflisten
12.08.2023 09:06:14
Oberschlumpf
Moin Joschi,

tja, mein Fehler^^ :-) (was ich vorher aber nicht wusste)

Ich hatte...
...den dir gezeigten IMPORT-Link gefunden
...anhand der gezeigten Anleitung ebenso wie du erfolgreich eine XML-Datei von meiner Fritzbox importiert
...dann den Link für EXPORT gefunden

... aber ohne die Export-Anleitung auszuprobieren dir sofort geantwortet

Erst danach hab ich es interessehalber mal ausprobiert...und scheiterte genau wie du an den gezeigten Fehlermeldungen.

Nach deiner Antwort vorhin hab ich es noch mal versucht, bzw mit Google etwas intensiver nach einer Lösung für Export-von-Excel-zu-XML recherchiert.

Gefunden hab ich diese Seite:
https://www.tabellenexperte.de/von-excel-zu-xml-und-zurueck/

Und die dort gezeigte Anleitung hab ich erst mal ausprobiert - bevor ich - meine (diese hier) Antwort an dich schreibe :-)

Nach Anleitung hab ich genau das erreicht, was dort beschrieben steht...mit den jeweiligen Bsp-Dateien - also funktioniert all das schon mal grundsätzlich.
Daraus verstanden hab ich, dass du wohl erst mal für deine Fritzbox-XML-Dateien erstmal die notwendige XSD-Datei erstellen musst (in der Anleitung wird die Datei unter dem Namen schema.xsd gespeichert).

Und nur mit der XSD-Datei, die für die Fritzbox-XML-Dateien anwendbar ist, ist eben der Xml-E X P O R T möglich.
Ich hab es nicht versucht, für meine Fritzbox-xml-Dateien eine xsd-Datei zu erstellen.

Ich hoffe, ich konnte trotzdem helfen.

Ciao
Thorsten
Anzeige
XML-Fritzbox-Telefonbuch auflisten
12.08.2023 09:26:23
Joschi Witchcraft
Hallo Thorsten.

Nochmals Danke für Deine weiteren Informationen. Das mit der "Quelle" habe ich jetzt auch gefunden. Doch bei der Anwendung scheitere ich.
Egal.

Für mich war wichtig, die XML-Daten "aufbereitet" irgendwo vorzufinden, z. B. in einer Excel-Tabelle.

Mit eigener Logik kann ich nun aus den "lesbaren" Daten eine neue XML-File speziell für meine Fritzbox erstellen. Das ist mit meinem Basis-Wissen kein Problem.

Danke und Gruß

Joschi
Anzeige
AW: XML-Fritzbox-Telefonbuch auflisten
12.08.2023 10:04:10
Oberschlumpf
Hi Joschi,

da ja, wie du vllt gemerkt hast, bzgl XML-Export auch noch nich so der Fachmann bist, würd ich gern wissen, WIE du es schaffst, eine XML-Datei aus Excel heraus zu erstellen?
Denn genau DAS war ja "unser" Problem.

Ciao
Thorsten
XML-Fritzbox-Telefonbuch auflisten
12.08.2023 10:31:31
Joschi Witchcraft
Hallo Thorsten.

Gerne beantworte ich Dir Deine Frage:

Userbild

Gruß Joschi
Anzeige
AW: XML-Fritzbox-Telefonbuch auflisten
12.08.2023 14:47:11
Oberschlumpf
Hi Joschi,

erst mal danke für deine Teil-Antwort.
Dann möchte ich mein letztes Wirrwarr-Schreiben entwirren.

Ich meinte, dass ICH derjenige bin, der sich bzgl. XML-Export auch noch nicht so auskennt.

Und nun zu deiner TeilAntwort:

Ok, so erstellst du ein Grundgerüst für eine XML-Datei.

Aber bitte genau was steht anstelle von .... zwischen


Print #1, " "
'und
Print #1, " / phonebook>"


?

Danke.

Ciao
Thorsten
Anzeige
XML-Fritzbox-Telefonbuch auflisten
12.08.2023 16:27:06
Pappawinni
Da dürften dann Telefonbucheinträge kommen, etwa so:

contact >
category >0 /category >
person > realName >Max Musterfrau /realName > /person >
telephony nid="3" >
number type="label:Mobil" prio="1" id="0" >+4911111111 /number >
number type="label:Geschäftlich" prio="0" id="1" >0157 11111111 /number >
number type="label:Privat" prio="0" id="2" >030 1111 /number >
/telephony >
services / >
uniqueid >500 /uniqueid >
/contact >

wobei die Tags natürlich vorn und hinten keine Leerzeichen haben, aber anders bekomme ich die wohl hier nicht rein.
Wenn du dir das von der Fritzbox exportiert XML anschaust, kannst du dir da selbst nen Reim drauf machen, was das alles bedeutet.
Anzeige
AW: XML-Fritzbox-Telefonbuch auflisten
12.08.2023 16:35:55
Oberschlumpf
auch an dich vielen Dank!
XML-Fritzbox-Telefonbuch auflisten
12.08.2023 20:09:12
Joschi Witchcraft
Noch eine Bemerkung von mir: die führenden Leerstellen stören nicht. Ich habe sie eingefügt. um im generierten Text eine bessere Übersicht zu haben.

Gruß Joschi
XML-Fritzbox-Telefonbuch auflisten
13.08.2023 08:47:58
Joschi Witchcraft
Hallo Forum.

Jetzt hätte ich doch noch eine Frage.

Nachdem ich - wie von Thorsten empfohlen - die XML-Daten importiert habe, benötige ich in der Tabelle für meine Weiterverarbeitung noch zwei zusätzliche Spalten. Die habe ich vor die durch den Import erstellen Spalten eingefügt. Allerdings gelingt es mir nicht, einen gemeinsamen Autofiter für alle Spalten zu setzen. Die durch den Import eingerichteten Spalten scheinen ein Eigenleben innerhalb meines Tabellenblattes zu führen.

Kann mir das jemand erklären und mir sagen, wie ich das "aufheben" kann?

Noch eine Bemerkung zu diesem Thread.
Ich hatte bereits eine "handgestrickte" Routine, welche mir das Fritzbox-Adressbuch in der XML-Version einliest und eine "passende" Excel-Tabelle aufgebaut hat. Das Muster dazu habe ich im Internet gefunden. Doch inzwischen gibt es im Adressbuch neue Informationen, die in meiner alten Version nicht vorgesehen waren. Und mir war es nicht möglich, diesen Code entsprechend zu erweitern.
Ich habe alte Schnurlostelefone im Einsatz, welche das Adressbuch-Format der Fritzbox nicht verstehen. Deshalb habe ich das Adressbuch per VBA für diese Telefone "umgebaut", den erforderichen XML-Code generiert und dann in die Fritzbox mit einem vorgegebenen Namen importiert. Deshalb habe ich bereits einen Code, der XML für das Adressbuch erstellt. Den Code muss ich aber noch anpassen.

Und eines dieser alten Schnurlostelefone ist noch immer im Einsatz. Es gibt noch viel zu tun.

Gruß Joschi
Anzeige
XML-Fritzbox-Telefonbuch auflisten
12.08.2023 18:02:55
Pappawinni
Bei den Beispielen, die ich so gefunden habe, fehlen die Tags "services /" und "uniqueid" bzw. "\uniqueid"
Auch nid = "x" fehlt in aller Regel. Die Fritzbox ergänzt sowas wohl automatisch, wenn man das XML zur Wiederherstellung benutzt.
Es wird allerdings immer das Telefonbuch überschrieben, d.h. einzelne Einträge nachtragen scheint so nicht möglich.
Anzeige
AW: XML-Fritzbox-Telefonbuch auflisten
13.08.2023 06:18:56
Oberschlumpf
Danke. Genau so wird auch mein Plan:
- bei Bedarf zwar in Excel neue Einträge
- aber immer alles komplett in die FB importieren
XML-Fritzbox-Telefonbuch auflisten
12.08.2023 15:39:15
Joschi Witchcraft
Hallo Thorsten.

Mein Code ist sehr umfangreich, weil ich darin auch noch ein paar Besonderheiten abgedeckt hatte. Und (nicht nur dafür) nutze ich verschiedene eigene Funktionen (wie z. B. UMLAUTE).

Grundsätzliche loope ich durch die Tabelle und dann jeweils durch die Spalten. Und je nach Kopfzeile der Spalten wird dann ein bestimmter String generiert.

Userbild

Ich hoffe, diese Information hilft DIr weiter.

Gruß Joschi

Anzeige
XML-Fritzbox-Telefonbuch auflisten
15.08.2023 23:08:28
Pappawinni
Ich bin gerade anderweitig eingespannt, aber vielleicht noch ein Hinweis.
Die Datei so mit einzelnen Print-Befehlen zu schreiben dürfte zwei Probleme haben.
1. Es wird nicht wird nicht wirklich Utf-8, was es aber sein soll und
2. Es ist wirklich langsam.
Ich würde den ganzen Senf in einer String-Variable zusammenbauen und das Ganze dann in einem rausschreiben.
Sei der Text in der Variablen sText und der Pfad der xml Datei in der Variablen strFilePath:


Dim adodbStreamUTF
Dim adodbStreamBIN
Set adodbStreamUTF = CreateObject("ADODB.Stream")
Set adodbStreamBIN = CreateObject("ADODB.Stream")

'sText nach UTF und dann als Binary nach strFilePath schreiben (ohne Byte Order Mark)

With adodbStreamBIN
.Type = 1 'Binary Type
.Open
With adodbStreamUTF
.Type = 2 'Text Type
.Charset = "UTF-8"
.Open
.WriteText sText 'Text schreiben
.flush
.Position = 3 'nach BOM
.copyto adodbStreamBIN
.Close
End With
.SaveToFile strFilePath, 2 'Datei speichern, ggf. neu erzeugen
.Close
End With


Anzeige
AW: XML-Fritzbox-Telefonbuch auflisten
12.08.2023 15:46:26
Oberschlumpf
Hi Joschi,

ja, noch mal danke.
Wenn auch das wieder nur n Codeschnipsel ist :-), kann ich damit aber schon mal etwas mehr mit anfangen.

Ciao
Thorsten
;
Anzeige
Anzeige

Infobox / Tutorial

XML-Fritzbox-Telefonbuch auflisten


Schritt-für-Schritt-Anleitung

  1. XML-Datei von der Fritzbox exportieren: Melde dich in deiner Fritzbox an und exportiere das Telefonbuch als XML-Datei.

  2. Import der XML-Daten in Excel:

    • Öffne Excel und gehe zu Daten > Abrufen und transformieren > Aus Datei > Aus XML.
    • Wähle die exportierte XML-Datei aus und folge den Anweisungen.
  3. Daten in Excel aufbereiten:

    • Überprüfe, ob die Daten korrekt importiert wurden. Gegebenenfalls musst du die Spalten anpassen.
  4. XML-Daten zurück in die Fritzbox exportieren:

    • Wenn du die Excel-Tabelle bearbeitet hast, kannst du die Daten wieder als XML exportieren. Beachte, dass hierfür eine passende XSD-Datei erforderlich ist.
    • Gehe zu Datei > Speichern unter und wähle das XML-Format.
  5. XSD-Datei erstellen:

    • Falls du keine XSD-Datei hast, kannst du diese in C# oder anderen Programmiersprachen generieren, um die XML-Zuordnungen korrekt darzustellen.

Häufige Fehler und Lösungen

  • Fehlermeldung: "Die XML-Daten können nicht exportiert oder gespeichert werden":

    • Diese Meldung tritt auf, wenn die XML-Zuordnungen nicht korrekt sind. Stelle sicher, dass du eine passende XSD-Datei hast, die für deine Fritzbox-XML-Dateien anwendbar ist.
  • Probleme beim Import der Daten:

    • Prüfe, ob die Struktur der XML-Datei den Anforderungen der Fritzbox entspricht.

Alternative Methoden

  • Power Query (PQ) verwenden:

    • Anstatt VBA zu nutzen, kannst du auch Power Query verwenden, um die XML-Daten zu importieren und zu transformieren. Dies ist oft einfacher und bietet mehr Flexibilität.
  • VBA-Skripte:

    • Du kannst VBA verwenden, um die XML-Daten zu bearbeiten, indem du den Code anpasst, um die gewünschten Daten zu extrahieren und zu speichern.

Praktische Beispiele

  • Erstellen einer XML-Datei in Excel:

    Dim sText As String
    sText = "<phonebook>" & vbCrLf
    sText = sText & "  <contact>" & vbCrLf
    sText = sText & "    <name>Max Musterfrau</name>" & vbCrLf
    sText = sText & "    <number>+4911111111</number>" & vbCrLf
    sText = sText & "  </contact>" & vbCrLf
    sText = sText & "</phonebook>"
  • Exportieren der Daten in CSV:

    • Du kannst das Telefonbuch auch als CSV exportieren, um die Daten in anderen Anwendungen zu verwenden. Dies kann in Excel einfach durch Speichern unter > CSV gemacht werden.

Tipps für Profis

  • Verwende UTF-8-Encoding beim Exportieren der XML-Datei, um sicherzustellen, dass alle Zeichen korrekt dargestellt werden.
  • Erstelle eine Struktur für deine XML-Datei, um die Lesbarkeit und Wartbarkeit zu erhöhen. Dies hilft insbesondere, wenn du das Telefonbuch über einen längeren Zeitraum pflegen möchtest.
  • Nutze Debug.Print in VBA, um den Status deines Codes zu überwachen und Fehler schneller zu identifizieren.

FAQ: Häufige Fragen

1. Wie kann ich die XML-Zuordnungen in Excel entfernen? Du kannst die XML-Zuordnungen in Excel entfernen, indem du die XML-Daten von deinem Arbeitsblatt löschst und das Arbeitsblatt dann in ein normales Excel-Format konvertierst.

2. Kann ich das Fritzbox-Telefonbuch direkt in Excel bearbeiten? Ja, du kannst die importierten Daten in Excel bearbeiten. Stelle sicher, dass die Struktur der Daten beim Export wieder in eine XML-Datei beibehalten wird.

3. Was ist Power Query und wie hilft es beim Importieren von XML? Power Query ist ein leistungsstarkes Datenverarbeitungswerkzeug in Excel, das dir ermöglicht, Daten aus verschiedenen Quellen zu importieren, zu transformieren und zu laden. Es ist eine benutzerfreundliche Alternative zu VBA.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige