Office: Mehrere XML-Dateien hintereinander in Excel einlesen

Helfe beim Thema Mehrere XML-Dateien hintereinander in Excel einlesen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich habe folgendes Problem. Ich habe einen Ordner mit ca. 1000 xml-Dateien der gleichen Struktur. Diese möchte ich gerne per vba mit Hilfe... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von grigio22, 2. August 2012.

  1. grigio22 Neuer User

    Mehrere XML-Dateien hintereinander in Excel einlesen


    Hallo,

    ich habe folgendes Problem. Ich habe einen Ordner mit ca. 1000 xml-Dateien der gleichen Struktur. Diese möchte ich gerne per vba mit Hilfe einer Schleife in eine Excel-Datei zusammenführen. Ich weiß leider nur nicht, wie ich das geschickt anstelle. Mit xml und vba kenne ich mich nicht so gut aus.

    Kann mir vielleicht jemand weiter helfen?

    Vielen Dank im Voraus!
     
    grigio22, 2. August 2012
    #1
  2. miriki Erfahrener User
    Das wird so ohne weiteres wohl nix... Schau Dir mal so eine XML-Datei mit einem Text-Editor an. Du wirst sehen, daß sie, ähnlich wie HTML, so eine komische Block-Struktur haben, eigentlich eher eine Baum-Struktur. Du hast dann, (extrem vereinfacht) sowas in der Art:
    <BUCH>
    <KAPITEL>
    Code:
    [Buch]
      [Kapitel]
        [Seite]
          [Buchstaben]
          [Buchstaben]
          [Buchstaben]
          ...
        [Seite]
          [Buchstaben]
      ...
    [/Buch]
    Wenn Du die "zusammenstellen" willst, ist's wie im Bücherregal: Du hast dann zwar alle Bücher nebeneinander stehen, aber es sind weiterhin einzelne Bücher (so, wie die einzelnen Dateien in Deinem Verzeichnis). Einen Gesamt-Wälzer hast Du damit noch lange nicht.

    Um die einzelnen Dateien wirklich zu einem Gesamt-Werk zusammenzustellen, müßte schon recht deutlich geklärt werden, welcher Ast der jeweiligen Datei an welche Stelle des Stamms im Gesamt-Werk gehängt werden soll. Und das bedeutet auch, daß ein komplettes Parsing der XML-Struktur vorgenommen werden muß.

    Einfach nur untereinander kopieren hilft da nix. Es sei denn, genau nur das wäre die Forderung. Dann wäre es ein relativ simples Konstrukt aus 2 ineinander verschachtelten Schleifen, z.B. "FileSearch" und "Line Input" / "Print" bis Eof().

    Gruß, Michael
     
    miriki, 8. August 2012
    #2
  3. Exl121150 Erfahrener User
    Hallo,

    falls Du die richtige Excel-Version hast, sollte das im Prinzip kein Problem sein, wie nachfolgender VBA-Code beweist.
    Du musst nur in der Variablen Pfad$ den Pfad zum Verzeichnis/Ordner, der Deine XML-Dateien enthält, korrekt vorgeben (im Beispiel unten ist dies: "V:\EXCEL\text\"), ferner in der Variablen DateiMatch$ den Dateifilter für die gewünschten XML-Dateien, wobei * bzw. ? als Maskierungszeichen verwendet werden dürfen (im Beispiel unten: "Produkte*.xml", wodurch Dateinamen wie "Produkte123.xml", "ProdukteAB.xml", "ProdukteBA34.xml" etc. gefunden werden).
    Ausgegeben wird das Ganze im aktiven Arbeitsblatt der aktive Arbeitsmappe ab Zelle A1 als linke obere Ecke, wobei diese Ecke auch noch angepasst werden kann, falls gewünscht.

    Vorausgesetzt wird natürlich, dass die XML-Dateien wohlgeformt sind - ansonsten wird das Einlesen mit Fehlermeldung unterbrochen.
    Die XML-Dateien werden im Code unten nicht gegen ein Schema validiert (ImportMap:=Nothing).

    Da Du keine Angaben zu Deiner Excel-Version gemacht hast, gebe ich wider, was in der Excel-Hilfe meiner Excel2007-Version zu lesen ist:
    Folgenden Code im VBA-Edior in ein allgemeines Codemodul kopieren:
    Code:
    
    Sub XML_Dateien_Einlesen()
    '
        Dim Datei$, Pfad$, DateiMatch$
        Dim AnfZelle As Range, Wb As Workbook, Ws As Worksheet
        On Error Resume Next
        
        Set Wb = ActiveWorkbook
        Set Ws = Wb.ActiveSheet
        
        Set AnfZelle = Ws.Range("A1")  '<== Anfangszelle im aktiven Arbeitsblatt der aktiven Arb.Mappe
        
        Pfad$ = "V:\EXCEL\text\"       '<== Pfad zum Verzeichnis einstellen
        DateiMatch$ = "Produkte*.xml"  '<== Datei-Matching, um gewünschte Dateien zu filtern
        
        Datei$ = Dir(Pfad$ & DateiMatch$, vbNormal)
        
        Do Until Len(Datei$) = 0
           Wb.XmlImport [URL="http://www.office-hilfe.com/support/=Pfad$"]URL:=Pfad$[/URL] & Datei$, ImportMap:=Nothing, Overwrite:=True, Destination:=AnfZelle
           Datei$ = Dir()
           Set AnfZelle = AnfZelle.Offset(1)
        Loop
        
    End Sub
    
    
    Ausgeführt wird das Ganze, wenn Du im aktiven Arbeitsblatt die Tastenkombination Alt+F8 drückst mit anschließender EINGABE-Taste.
     
    Zuletzt bearbeitet: 10. August 2012
    Exl121150, 9. August 2012
    #3
Thema:

Mehrere XML-Dateien hintereinander in Excel einlesen

Die Seite wird geladen...
  1. Mehrere XML-Dateien hintereinander in Excel einlesen - Similar Threads - XML Dateien hintereinander

  2. Import von XML-Dateien in Access

    in Microsoft Access Hilfe
    Import von XML-Dateien in Access: Hallo zusammen, ich möchte eine Menge von XML-Dateien in Access 2016 importieren und verwende dazu die Importfunktion für XML-Dateien unter Externe Daten im Menü. Die Dateien enthalten einige 100...
  3. Was geht verloren, wenn ich die Arbeitsmappe als eine XML-Kalkulationstabelle 2003-Datei ...

    in Microsoft Excel Tutorials
    Was geht verloren, wenn ich die Arbeitsmappe als eine XML-Kalkulationstabelle 2003-Datei ...: Was geht verloren, wenn ich die Arbeitsmappe als eine XML-Kalkulationstabelle 2003-Datei speichere? Excel für Microsoft 365 Excel 2019 Excel 2016 Excel 2013...
  4. XML Datei als UTF-8 speicher

    in Microsoft Excel Hilfe
    XML Datei als UTF-8 speicher: Hi, ich hätte ein Problem. Aus einer Exceldatei erstelle ich mit einem Makro eine XML-Datei. Dies geht super. Leider brauche ich die Datei als UTF-8. Hoffentlich kann mir einer helfen. Vielen,...
  5. XML Datei erstellen

    in Microsoft Access Hilfe
    XML Datei erstellen: Hallo, ich habe eine Access DB in der 3 Tabellen enthalten sind, aus diesen 3 Tabellen soll eine xml Datei erstellt werden. Eine Zip-Datei mit einer Bsp. DB und einem XML File (die Struktur muss...
  6. VBA im aus vielen Dateien XML´s zu erstellen

    in Microsoft Excel Hilfe
    VBA im aus vielen Dateien XML´s zu erstellen: Schönen guten Tag, Excel: 2013 ich stehe für mich vor einem großen Problem ;) Ich habe ca. 1600 ca. 1KB große .txt files die folgendermaßen aufgebaut sind: Typ;Count 10;5 und...
  7. xml datei importieren

    in Microsoft Excel Hilfe
    xml datei importieren: Hallo experten Ich benutze Excel 2010 Die manuelle variante 1. Daten , aus anderen Quellen , vom xml-Daten import 2. Datenquelle auswählen 3. Dateiname wählen ( z.b....
  8. Problem beim Speichern als .xml Datei

    in Microsoft Excel Hilfe
    Problem beim Speichern als .xml Datei: Hallo, ich habe eine Excel-Tabelle mit verschiedenen Preisinformationen zu Baustoffen. Diese Datei muss ich als .xml Datei abspeichern, um sie in ein Branchenprogramm einlesen zu können. Wenn ich...
Schlagworte:
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden