XML en Excel

Pagina's in dit artikel

  1. Wat is XML
  2. Kenmerken van XML
  3. Opbouw van een XML bestand
  4. XML Schema's
  5. XML in Excel
  6. XML Validatie
  7. Conclusie

XML in Excel

Wat meer (Office) praktijk nu. Met Excel 2003/2007/2010/2013 is het binnenhalen van XML gegevens erg gemakkelijk. Helaas zijn (bij Excel 2003) de XML faciliteiten alleen beschikbaar in de Excel uitvoering binnen Microsoft Office Professional of als stand-alone toepassing. Wanneer vanuit Excel 2003 Bestand, Openen--> wordt gekozen, dan is te zien dat standaard de XML bestanden ook in de lijst met te openen bestanden zichtbaar zijn.

Het Bestand Openen venster van Excel 2003
Figuur 2: Het Bestand Openen venster van Excel 2003.

Indien het bestand test.xml gekozen wordt, dan verschijnt een keuzemenu (zie figuur 3).
Excel vraagt wat er met het XML bestand moet worden gedaan
Figuur 3: Excel vraagt wat er met het XML bestand moet worden gedaan

Als wordt gekozen voor de derde optie, dan zal Excel het XML bestand analyseren en de gevonden structuur presenteren in een Taakvenster (figuur 4). Het bestand zelf wordt dan niet geopend.

de structuur in het taakvenster XML-Bron
Figuur 4, de structuur in het taakvenster XML-Bron

De elementen uit het XML bestand kunnen nu aan cellen in Excel worden gekoppeld, eenvoudigweg door ze te verslepen van het taakvenster naar een cel in Excel. Zie figuur 5 en 6.

Verslepen van element naar een Excel cel
Figuur 5: Verslepen van element naar een Excel cel

Resultaat na verslepen van een element
Figuur 6 Resultaat na verslepen van een element

Door een element te verslepen dat meer dan 1 sub-elementen kan bevatten (bijvoorbeeld het element "Medewerker"), worden automatisch de sub elementen meegenomen en als lijst in Excel geplaatst (zie figuur 7).

Lijst gemaakt door het verslepen van het element Medewerker
Figuur 7: Lijst gemaakt door het verslepen van het element "Medewerker".

Hiermee is een Excel sjabloon gemaakt dat gegevens uit XML bestanden kan importeren met dezelfde structuur als het bestand test.xml. Omdat deze exercitie is begonnen door het bestand test.xml te openen, kan dit worden gedaan door op het knopje "XML-gegevens Vernieuwen" te klikken (zie figuur 8). De gegevens uit het bestand Test.xml worden in het zojuist opgebouwde sjabloon ingelezen. Figuur 9 toont het resultaat in Excel.

knop XML-gegevens Vernieuwen op de werkbalk Lijst
Figuur 8: knop "XML-gegevens Vernieuwen" op de werkbalk "Lijst"

resultaat van gegevens importeren
Figuur 9: resultaat van gegevens importeren.

Om een ander bestand in dezelfde structuur in te lezen kan de optie XML-Gegevens Importeren" worden gebruikt, welke zich op dezelfde werkbalk bevindt. De aanwezige gegevens worden dan vervangen door de gegevens uit het nieuwe bestand.



Vragen, suggesties en opmerkingen

Laatste 8 commentaren van in totaal 30 (Toon ze allemaal):

 


Commentaar van: Jan Karel Pieterse (20-6-2013 13:05:33) deeplink naar dit commentaar

Hallo Chas,

Ik heb het sterke vermoeden dat die XML bestanden samen een database vormen (met gerelateerde tabellen). Je zou ze dus eigenlijk in MSAccess of een dergelijk programma moeten importeren wil je er echts iets aan hebben.


Commentaar van: Delphine (25-6-2014 23:34:01) deeplink naar dit commentaar

Beste Jan Karel,

Ik zit met een xml vraagje.
Ik zou graag vanuit excel een xml aanmaken. Ik heb een specifiek xsd schema. Helaas krijg ik steeds de melding met als fout' kan niet geëxporteerd worden wegens lijst van lijsten'. Kan jij mij daarmee helpen ? Ik vermoed dat het op te lossen is met vba maar daar ben ik helemaal niet in thuis.

Alvast bedankt voor je respons!
Delphine


Commentaar van: Jan Karel Pieterse (26-6-2014 07:05:02) deeplink naar dit commentaar

Hallo Delphine,

Natuurlijk. Neem s.v.p. contact op middels het email adres onderaan deze pagina.


Commentaar van: Roel (20-3-2015 11:20:37) deeplink naar dit commentaar

Hallo Jan Karel,

Ik weet dat het een verouderd bericht is maar ik heb een kort vraagje.

Kan ik de handeling uit figuur 8 ook met vba uit kunnen voeren?
Het gaat over een vaste tabel die maandelijks ververst moet worden in office 2010

Alvast bedankt
Groeten Roel


Commentaar van: Jan Karel Pieterse (20-3-2015 13:41:45) deeplink naar dit commentaar

Hoi Roel,

Uiteraard. Heb je al geprobeerd een macrootje op te nemen terwijl je die handeling doet?


Commentaar van: Roel (20-3-2015 19:31:04) deeplink naar dit commentaar

Hallo Jan Karel,

Dat was inderdaad het eerste wat ik geprobeerd heb maar er werd niks opgenomen. Daarom ben ik het internet aan het afstruinen naar de code maar ik kan niks vinden helaas.

Groeten Roel


Commentaar van: Jan Karel Pieterse (23-3-2015 10:56:35) deeplink naar dit commentaar

Hi Roel,

De syntax is:

Worksheets("Sheet1").ListObjects("Table1").XmlMap.DataBinding.Refresh


Commentaar van: Roel (23-3-2015 14:52:33) deeplink naar dit commentaar

Geweldig.
Het werkt meteen.
Nu hoef ik het niet meer handmatig te vernieuwen


Heeft u vragen, suggesties of opmerkingen? Gebruik dan dit formulier.

Mocht uw vraag niet direct relevant zijn voor deze pagina, maar een algemene Excel vraag betreffen, dan adviseer ik om deze hier te stellen: excelexperts.nl/forum/index.php.




Als u VBA code in uw commentaar plaatst, gebruik dan [VB] tags: [VB]Uw code[/VB].