Excel 365 und das CSV Trennzeichen Problem

Excel 365 und das CSV Trennzeichen Problem

Heute Nacht ist einer meiner Server abgeraucht, nun musste ich Daten herstellen und kam wieder einmal an das typische Problem des US / EU Layout für Spalten Trennungen in CSV Dateien. Ähnliche wie bei dem Tausender Trennzeichen sind die Zeichen in USA im Vergleich zu Europa invertiert.

Komma sind Punkte und Punkte sind Komma. Excel 365 hat hierbei das Problem, das man die Datei entweder neu importieren muss oder anpassen muss. Bei über 50 Tausend Zeilen wollte ich mich nicht auf die Stabilität von Excel verlassen.

Zuerst erkannte Excel die Trennzeichen nicht, hier gibt es einen einfachen und schnellen Hotfix. Hierzu muss man an den Anfang der Datei den Parameter sep angeben.

sep=,

Hertes

Das kann man mittels Editor schnell erledigen und sollte wie folgt aussehen.

sep=,
order,id,date,time,title,url,visitCount,typedCount,transition;;;
0,64960,8/22/2021,13:56:11, My Value, My Value ,1,0,link;;;
1,64959,8/22/2021,13:56:06, My Value , My Value ,1,0,link;;;

Eigentlich sollte man hier nun glücklich sein, aber das reicht leider nicht immer aus.

Im nächsten Schritt gab es Probleme von Excel beim Einlesen bei Zeilen, die mit einem Anführungszeichen beginnen. Diese Spalten wurden in keiner Weise getrennt. Um das zu lösen, wollte ich anfänglich ein Script in PHP schreiben, dachte mir aber, Powershell wäre sinnvoller da immer zur Hand. Der Knackpunkt, ich hab keine Erfahrung mit Powershell, daher habe ich kurz gesucht und diesen schönen StackOverflow Beitrag gefunden.

$File = "myfile.csv"
(Get-Content $File) | Foreach-Object { $_ -replace """", "" } | Set-Content $File

Theoretisch könnte man das Script erweitern mit einem Fileinput, der Kontrolle das man nur führende Zeichen entfernt und vieles mehr. Aber das soll ja nur ein Hotfix sein.