130771

Csv in xml umwandeln mit VBA

Hallo zusammen,

ich bin neu in der Commuity und auch neu im Bereich der Programmierung mit VBA.
Ich habe leider im Forum nicht passendes gefunden, daher nun mein Frage.
Und zwar wollte ich folgendes wissen, gibt es eine Möglichkeit mit VBA eine eingelesene .csv in eine .xml umzuwanden?

Vielen Dank schon mal für die Hilfe face-smile
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 314819

Url: https://administrator.de/forum/csv-in-xml-umwandeln-mit-vba-314819.html

Ausgedruckt am: 12.05.2025 um 17:05 Uhr

129813
129813 09.09.2016 aktualisiert um 07:30:29 Uhr
Goto Top
Yes, but you need to tell us how the XML should look like, found this already on the board
CSV to XML Konverter

Regards
130771
130771 09.09.2016 aktualisiert um 08:16:51 Uhr
Goto Top
<variable =" " name " " type" ">


So sollte die xml aussehen, ich hoffe das hilft weiter
129813
129813 09.09.2016 aktualisiert um 07:59:27 Uhr
Goto Top
And your CSV ??? Which column maps to which attribute? And has your CSV a header row?
130771
130771 09.09.2016 aktualisiert um 08:14:09 Uhr
Goto Top
Ok, sorry.
I give an exampl how it looks like.

.csv (the .csv has a header)

row1 (header): name, birthday, adress
row 2: Jon, 19950509, Elmstreet 14

.xml

<name"Jon" birthday"19950509" adress"Elmstreet14" />


Does it help?
colinardo
colinardo 09.09.2016 aktualisiert um 09:21:29 Uhr
Goto Top
Hallo Jou5126, willkommen auf Administrator.de!
Hier ein Beispiel für deine Daten
(Kommentare siehe jede Zeile des Codes)
' Variablen  
Dim fso, objXML, rows, cols, headers, i, j, node
' Konstanten  
' Pfad der CSV-Datei  
Const FILE_IN = "C:\data.csv"  
' Pfad für das erstellte XML-File  
Const FILE_OUT = "C:\data_out.xml"  
'Trennzeichen der CSV festlegen  
Const DELIMITER = ","  

'Objekte erstellen  
Set fso = CreateObject("Scripting.FileSystemObject")  
Set objXML = CreateObject("msxml2.domdocument.6.0")  

'XML Objekt mit Document-Element initialisieren  
objXML.loadXML "<?xml version=""1.0"" encoding=""utf-8""?><root></root>"  

'Zeilen der CSV einlesen  
rows = Split(fso.OpenTextFile(FILE_IN).ReadAll(),vbNewLine)
'Überschriften einlesen  
headers = Split(rows(0),DELIMITER,-1,1)
'Für jede Zeile der CSV  
For i = 1 To UBound(rows)
	'Neuen Knoten mit dem Elementnamen "row" erstellen  
	Set node = objXML.createElement("row")  
	'Spalten der aktuellen Zeile in Array splitten  
	cols = Split(rows(i),DELIMITER,-1,1)
	'Daten jeder Spalte als Attribut in den Knoten schreiben  
	For j = 0 To UBound(cols)
		node.setAttribute headers(j),cols(j)
		objXML.documentElement.appendChild node
	Next
Next
'XML-Datei speichern  
objXML.save(FILE_OUT)
MsgBox "Fertig."  
Grüße Uwe

-edit- Rechtschreibfehler im Code korrigiert
129813
129813 09.09.2016 aktualisiert um 08:50:00 Uhr
Goto Top
<name"Jon" birthday"19950509" adress"Elmstreet14" />
This is no valid XML, my friend.
colinardo
colinardo 09.09.2016 aktualisiert um 09:24:25 Uhr
Goto Top
Was ist jetzt los? Ohne ein einziges Wort abgemeldet??? face-sad Höflichkeit geht anders!

Idiot !
Biber
Biber 09.09.2016 aktualisiert um 12:16:24 Uhr
Goto Top
Moin colinardo,


Zitat von @colinardo:

Was ist jetzt los? Ohne ein einziges Wort abgemeldet??? face-sad Höflichkeit geht anders!

Idiot !
Ist wirklich eine Frechheit und dieser Mensch lässt uns keine Optionen ausser dem Verwenden unflätiger Worte und dem heftigen Aufstampfen mit dem Fuss.

Auch als Moderator kann ich nicht richtig viel Sinnvolles damit machen ausgenommen das Umbetten in den

back-to-top### Papierkorb ###.



Eigentlich möchte ich es ganz löschen, wollte dir aber Gelegenheit geben, deinen Grundgerüst-Konvertierschnipsel ggf zu sichern für künftige FrageInnen. Den Zwischenschritt über Papiekorb schenke ich mir.

Bitte sende mir kurz eine PN, wenn ich dieses Beitrags-Ärgernis ganz vaporisieren kann - das macht auch mir schlechte Laune.

Grüße
Biber