Dokument XML (Extensible Markup Language) jest plikiem tekstowym, który zawiera dane otoczone tagami. Definiują one strukturę i znaczenie danych, czyli mówią, czym są określone dane. Są popularnym sposobem wymiany informacji z administracją publiczną i jednym ze sposobów eksportowania danych z systemów. Jak pobrać dane z takiego pliku do Excela? Oczywiście z Power Query.
Jak wygląda plik XML?
Oto przykład pliku XML JPK faktura VAT:
Krok 1: Pobierz dane za pomocą Power Query
Proces pobierania danych rozpoczynamy od przycisku Pobierz dane na karcie Dane > Z pliku > Z pliku XML.
Następnie wskazujemy wyszukiwany plik.
Krok 2: Wybierz tabelę
Plik może składać się z 1 tabeli, ale może mieć w sobie kilka struktur. W oknie nawigatora Power Query wybieramy interesujący nas element (albo wszystkie, wybierając checkbox Wybierz wiele elementów) i klikamy Przekształć dane.
Krok 3: Dokop się do danych
W scenariuszu optymistycznym od razu zobaczymy tabelę z danymi.
Może się jednak okazać, że do danych trzeba się „dokopać”, rozpakowując kolejne obiekty typu Table.
Klikamy wówczas ikoną Rozwiń w lewym górnym rogu kolumny i schodzimy na kolejne poziomy struktury XML-a. Tam mogą czekać na nas kolejne obiekty typu Table, które rozpakowujemy, szukając interesujących nas danych.
Na koniec stosując standardowe sposoby pracy z danymi w Power Query przygotowujemy tabelę z danymi, którą ładujemy do Excela lub Power BI.
Jak pobrać folder plików XML?
Na ostatnim webinarze poświęconym pobieraniu danych z folderu przedstawiłem sposoby radzenia sobie z plikami Excel i CSV. Ta sama zasada ma także zastosowanie do folderu plików XML: tworzymy folder plików XML o podobnej strukturze > wybieramy polecenie Pobierz dane > Z pliku > Z folderu.
Podajemy ścieżkę katalogu z plikami i klikamy OK.
W kolejnym oknie wybieramy polecenie Połącz > Łączenie i przekształcanie danych.
Jeśli plik XML ma konkretne elementy do wybrania, wybieramy je z listy.
Po przejściu do Power Query zobaczymy wówczas skonsolidowane dane ze wszystkich plików w folderze, a w kolumnie Source.Name nazwę pliku, z którego pochodzą.
Jeśli mamy do czynienia z plikami ze strukturą mniej przyjazną, otrzymujemy obiekty typu Table, które zaczynamy rozpakowywać, z tą różnicą, że robimy to na wszystkich plikach w folderze.
Masz jakieś ciekawe wyzwanie związane z plikami XML?
Podziel się w komentarzu.
Hej. Wszystko zrozumiałe, ale natknąłem się na problem, który nie został opisany. Importując xml mam kolumnę typu Text, część komórek zawiera linki do zdjęć, ale w części rekordów gdzie znajduje się więcej zdjęć zagnieżdżono tabelę. Nie mogę znaleźć informacji jak je rozwinąć:(
Hej Michał, jeśli możesz, podeślij taki przykładowy plik, żeby sprawdzić, jak go widzi Power Query.
Wielkie dzięki za odpowiedź! Podesłałem plik, a wątek wydaje się ciekawy. Nigdzie nie doszukałem się odpowiedzi na problem.
Czy jest prosta metoda na rozwijanie tabel z XML (rozpakowywanie kolejnych obiektów typu Table)?
Tylko „widełki” do rozpakowania w prawym górnym rogu nazwy kolumny.