• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Exporteren vanuit Excel naar verschillende XML-bestanden, hoe?

Status
Niet open voor verdere reacties.

doncarillon2

Gebruiker
Lid geworden
24 feb 2015
Berichten
11
Is het mogelijk (zo ja, hoe) om de inhoud van een Excel tabblad te exporteren naar verschillende XML-files?

Ik heb zojuist de stappen uit deze handleiding opgevolgd. Het is dus mogelijk om vanuit Excel een XML-file te genereren. Mijn wens is om vanuit 1 masterfile (Excel), verschillende XML-files te creeëren. Kortom, Excel wil ik een XML-file laten genereren PER regel.


EXCEL-file
[TABLE="width: 500"]
[TR]
[TD]voornaam
[/TD]
[TD]achternaam
[/TD]
[TD]leeftijd
[/TD]
[TD]geboortejaar
[/TD]
[/TR]
[TR]
[TD]Jan
[/TD]
[TD]Janssen
[/TD]
[TD]20
[/TD]
[TD]1995
[/TD]
[/TR]
[TR]
[TD]Piet
[/TD]
[TD]Pietersen
[/TD]
[TD]22
[/TD]
[TD]1993
[/TD]
[/TR]
[TR]
[TD]Klaas
[/TD]
[TD]Klaassen
[/TD]
[TD]24
[/TD]
[TD]1991
[/TD]
[/TR]
[/TABLE]


XML-file 1
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Studenten xmlns:xsi="[URL]http://www.w3.org/2001/XMLSchema-instance[/URL]">
 <record>
  <FirstName>Jan</FirstName>
  <LastName>Janssen</LastName>
  <Age>20</Age>
  <Year>1995</Year>
 </record>
</Studenten>


XML-file 2
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Studenten xmlns:xsi="[URL]http://www.w3.org/2001/XMLSchema-instance[/URL]">
 <record>
  <FirstName>PietFirstName>
  <LastName>JPietersen/LastName>
  <Age>22</Age>
  <Year>1993</Year>
 </record>
</Studenten>
 
Code moet in de codemodule staan van het werkblad dat de tabel bevat.

Code:
Sub M_snb()
    c00 = Replace("<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?><~ xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""><record>", "~", ActiveWorkbook.Name)
    For Each it In ListObjects(1).HeaderRowRange.Value2
       c00 = c00 & Replace("<~>#</~>", "~", it)
    Next
    c00 = c00 & Replace("</record></~>", "~", ActiveWorkbook.Name)
    
    For Each rw In ListObjects(1).DataBodyRange.Rows
      c01 = c00
      For Each it In rw.Value
         c01 = Replace(c01, "#", it, , 1)
      Next
      CreateObject("scripting.filesystemobject").createtextfile("G:\OF\voorbeeld" & Format(rw.Row, "000") & ".xml").write c01
    Next
End Sub
 
Laatst bewerkt:
Bedankt voor bovenstaande code, dit werkt uitstekend!


Is het ook mogelijk dat ik afhankelijk van het aantal waardes behorend bij een regel, een nieuwe XML krijg? Omdat dit wat cryptisch is omgeschreven hierbij een voorbeeld:

EXCEL-file[TABLE="class: cms_table, width: 500"]
[TR]
[TD]voornaam
[/TD]
[TD]achternaam
[/TD]
[TD]leeftijd
[/TD]
[TD]geboortejaar
[/TD]
[/TR]
[TR]
[TD]Jan
[/TD]
[TD]Janssen
[/TD]
[TD]20
[/TD]
[TD]1995
[/TD]
[/TR]
[TR]
[TD]Piet
[/TD]
[TD]Pietersen
[/TD]
[TD]22
[/TD]
[TD]1993
[/TD]
[/TR]
[TR]
[TD]Klaas
[/TD]
[TD]Klaassen
[/TD]
[TD]24
[/TD]
[TD]1991
[/TD]
[/TR]
[TR]
[TD]Kees
[/TD]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
[/TABLE]

In bovenstaand voorbeeld heeft Klaas twee namen, Klaas & Kees. Ik zou nu graag zien dat de uitkomst als volgt is:

XML-file 3
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Studenten xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<record>
<FirstName>Klaas</FirstName>
<FirstName>Kees</FirstName>
<LastName>Klaasen</LastName>
<Age>24</Age>
<Year>1991</Year>
</record>
</Studenten>

Is dit mogelijk?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan