130771
Goto Top

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

Content-Key: 314819

Url: https://administrator.de/contentid/314819

Printed on: April 16, 2024 at 05:04 o'clock

Mitglied: 129813
129813 Sep 09, 2016 updated at 05:30:29 (UTC)
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
Mitglied: 130771
130771 Sep 09, 2016 updated at 06:16:51 (UTC)
Goto Top
<variable =" " name " " type" ">


So sollte die xml aussehen, ich hoffe das hilft weiter
Mitglied: 129813
129813 Sep 09, 2016 updated at 05:59:27 (UTC)
Goto Top
And your CSV ??? Which column maps to which attribute? And has your CSV a header row?
Mitglied: 130771
130771 Sep 09, 2016 updated at 06:14:09 (UTC)
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?
Member: colinardo
colinardo Sep 09, 2016 updated at 07:21:29 (UTC)
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
Mitglied: 129813
129813 Sep 09, 2016 updated at 06:50:00 (UTC)
Goto Top
<name"Jon" birthday"19950509" adress"Elmstreet14" />
This is no valid XML, my friend.
Member: colinardo
colinardo Sep 09, 2016 updated at 07:24:25 (UTC)
Goto Top
Was ist jetzt los? Ohne ein einziges Wort abgemeldet??? face-sad Höflichkeit geht anders!

Idiot !
Member: Biber
Biber Sep 09, 2016 updated at 10:16:24 (UTC)
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