bine444
Goto Top

Übertrag von txt nach Excel

Hallo zusammen,

ich bin neu hier und sitze an einem Problem.

Ich möchte aus einer langen TXT nur bestimmte Daten in eine Excel importieren. Die Daten stehen untereinander und wiederholen sich regelmäßig:

dn: uid=Musermann Abai, o=Schönheide,o=directoryRoot
roomnumber: 2.54
givenname: Shabnam
postalcode: 05412
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetorgperson
objectclass: CDPerson
facsimiletelephonenumber: +49 366 582 500600
entityname: 53
uid: Musermann Abai
mail: musermann.abai@microsoft.de
buildingname: Dienstleistungsturm
cn: Abai Musermann
cl: CL_G
telephonenumber: 3216
o: Schönheide
st: 03
l: Schönheide
postaladdress: Karl-Mai-Str. 69
parentdn:: I16sdf6sdagf1a64f64f616f1es6f4reag64fd6g16fdg16reag46fdg1f3g0v31
floor: Gesundheit
sn: Abai
c: DE
title: Sozialarbeiterin

Für die Excel sollen aber nur bestimmte Informationen auf Spalten nebeneinander übertragen werden.
Ich habe das über ein Makro versucht, bin aber nicht weit gekommen. Benötigt werden pro Spalte uid; postaladdress; postalcode; roomnumber; telephonenumber und title.
Könnte mir jemand helfen und hätte einen Vorschlag für die VBA-Befehle - ich bin leider daran gescheitert.

Vielen Dank und viele Grüße

Content-Key: 1708080156

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

Ausgedruckt am: 28.03.2024 um 19:03 Uhr

Mitglied: Doskias
Doskias 10.01.2022 um 12:07:07 Uhr
Goto Top
Moin,

du solltest hier mal die Daten wie Name, Jobbeschreibung, Telefonnummer, etc. anonymisieren ;)

Gruß
Doskias
Mitglied: Bine444
Bine444 10.01.2022 um 12:41:25 Uhr
Goto Top
Hallo Doskias,

ich habe alle Daten anonymisiert - es sind keine tatsächlichen Daten dabei.
Mitglied: SachsenHessi
SachsenHessi 10.01.2022 um 12:42:08 Uhr
Goto Top
Datei --> Öffnen --> Durchsuchen --> Textdatei aussuchen --> Assistent öffnet sich --> Spaltentrenner : einstellen --> importieren

als VBA, das ganze über den Recorder laufen lassen.

MfG
SH
Mitglied: em-pie
em-pie 10.01.2022 um 12:55:05 Uhr
Goto Top
Zitat von @SachsenHessi:

Datei --> Öffnen --> Durchsuchen --> Textdatei aussuchen --> Assistent öffnet sich --> Spaltentrenner : einstellen --> importieren

als VBA, das ganze über den Recorder laufen lassen.

MfG
SH

Bei ihm stehen die "Spalten" je Datensatz aber untereinander.
Er sucht ja eine "Funktion", in der er die Daten zunächst "drehen" kann...
Mitglied: 149569
Lösung 149569 10.01.2022 um 12:55:42 Uhr
Goto Top
Oder mit der Powershell
$quelle = "D:\Ordner\data.txt"  
$ziel = "D:\Ordner\data.csv"  
[regex]::matches((Get-Content $quelle -raw),'(?ism)^roomnumber:\s?(?<roomnumber>[^\r\n]*).*?^postalcode:\s?(?<postalcode>[^\r\n]*).*?^uid:\s?(?<uid>[^\r\n]*).*?^telephonenumber:\s?(?<telephonenumber>[^\r\n]*).*?^postaladdress:\s?(?<postaladdress>[^\r\n]*).*?^title:\s?(?<title>[^\r\n]*)') | %{  
    [pscustomobject]@{
        uid = $_.Groups['uid'].Value.trim()  
        postaladdress = $_.Groups['postaladdress'].Value.trim()  
        postalcode = $_.Groups['postalcode'].Value.trim()  
        roomnumber = $_.Groups['roomnumber'].Value.trim()  
        telephonenumber = $_.Groups['telephonenumber'].Value.trim()  
        title = $_.Groups['title'].Value.trim()  
    }
} | export-csv $ziel -Delimiter ";" -Encoding UTF8 -NoTypeInformation  
Mitglied: Bine444
Bine444 10.01.2022 aktualisiert um 13:28:18 Uhr
Goto Top
Hallo Hacktor,

ja, das Problem war, dass die Daten nicht untereinander geschrieben werden sollten.
Vielen Dank für die Lösung über PowerShell. Ich habe Quelle und Ziel angepasst und konnte mit dem Abruf eine CSV anhand der vorgegebenen Kriterien erzeugen.

Da ich sonst über PowerShell nicht viel mache, hast du mir damit sehr geholfen.

Viele Grüße und vielen Dank.