Was muss ich mit den Zeilenumbrüchen in dieser CSV-Datei tun, damit sie ordnungsgemäß in eine Datenbank oder ein Arbeitsblatt importiert wird?

Was muss ich mit den Zeilenumbrüchen in dieser CSV-Datei tun, damit sie ordnungsgemäß in eine Datenbank oder ein Arbeitsblatt importiert wird?

Ich habe eine CSV-Datei, die aus einem proprietären Datenbanksystem für elektronische Gesundheitsakten exportiert wurde. Ich war Abonnent dieses Dienstes, aber nach Beendigung meines Abonnements kann ich meine Daten so behalten und in ein anderes System migrieren. Kurz gesagt, ich muss sie in eine Datenbank oder ein Tabellenkalkulationsprogramm importieren, damit ich die Krankenaktendokumente dann mithilfe der Word-Seriendruckfunktion in einem lesbaren Format neu erstellen und ausdrucken kann.

Das Problem besteht darin, dass beim direkten Öffnen der Datei mit Excel oder beim Importieren mit Access in vielen Datenfeldeinträgen formatierte Zeilenumbrüche vorhanden sind, die als Datensatztrennzeichen fehlinterpretiert werden. Dies führt dazu, dass Excel oder Access mitten im Eintrag eine neue Zeile beginnen, was natürlich alles durcheinander bringt. Als ich die Datei mit Notepad++ öffnete und „Alle Zeichen anzeigen“ aktivierte, konnte ich sehen, dass die echten Datensatztrennzeichen CR LF-Symbole sind, die formatierten Zeilenumbrüche innerhalb der Einträge jedoch selbst LF-Symbole sind. Durch kurzes Nachlesen habe ich erfahren, dass CSV-Datenfeldeinträge, die einen Zeilenumbruch enthalten, idealerweise in doppelte Anführungszeichen eingeschlossen werden sollten, dies bei den Einträgen in meiner Datei jedoch nicht der Fall ist. Daher gehe ich davon aus, dass dies die Ursache des Problems ist.

Wie kann ich das beheben? Gibt es eine Möglichkeit, mit Access, Excel oder einem anderen Open-Source-Programm die LFs selbst als formatierende Zeilenumbrüche innerhalb des Datenfeldeintrags darzustellen? Können Sie die einzelnen LFs in einen anderen Zeilenumbruchtyp konvertieren, damit sie richtig dargestellt werden? Selbst wenn es nur die LFs ignoriert, denen kein CR vorangestellt ist, würde es die LFs dann vielleicht richtig als Zeilenumbrüche darstellen, wenn ich später Word-Seriendruck verwende, um die Dokumente auszugeben? Eine andere Möglichkeit, die meiner Meinung nach funktionieren könnte, wäre, eine Art Suchen/Ersetzen-Operation auszuführen, um alle einzelnen LFs durch ein anderes Zeichen zu ersetzen, bis ich sie in die Datenbank importiert habe, und dieses Zeichen dann durch die richtige Art von Zeilenumbruch zu ersetzen, sobald es in der Datenbank ist oder nachdem ich das Dokument per Seriendruck erstellt habe. Oder gibt es eine Art Suchen/Ersetzen-Operation, die einfach jeden Feldeintrag, der ein einzelnes LF enthält, in doppelte Anführungszeichen einschließen könnte? Selbst wenn es eine Möglichkeit gibt, jeden Datenfeldeintrag in der Datei nicht selektiv in doppelte Anführungszeichen einzuschließen, sollte es doch immer noch funktionieren, oder? Ich bin mir nur nicht sicher, wie ich von hier aus am einfachsten weiter vorgehen soll, und bin für jeden Vorschlag dankbar.

Antwort1

In Notepad++ wird der reguläre Ausdruck "[^\r]\n" mit LF übereinstimmen, aber nicht mit CRLF. Ersetzen Sie dies nun durch das, was Sie wollen. DiesAntwortenthält nützliche Informationen.

Antwort2

Wenn die CSV richtig zitiert ist, also doppelte Anführungszeichen um alles, was als Abgrenzung einer 'Zelle' ausgelegt werden könnte, dannLibreOfficesollte funktionieren. (YMMV) SieheWikipediafür eine Beschreibung des CSV-Formats.

verwandte Informationen