Seite 1 von 1

Zeilenumbruch beim CSV Import erzwingen

Verfasst: Mi, 11.03.2015 12:19
von merc24
Ich würde mal bitte den Tipp von Experten benötigen. :)

Ich habe ein CSV Datei, die wie folgt aufgebaut ist:

;;;1;A\r\n;;;B
;;;2;C\r\n;;;D


\r\n kann ich auch anders formatieren. Ich will erreichen, dass beim Import \r\n als Zeilenumbruch verstanden wird, als würde die CSV so ausschauen:

;;;1;A
;;;;B
;;;2;C
;;;;D

Ich bekomme das nicht hin. Nur das tatsächliche Zeilenende erzeugt einen Umbruch. Es gibt auch nur die Auswahl einen Zellentrenners beim Import, nicht die eines Zeilentrenners. Hat da wer eine Idee, wie ich das erreiche? Bin für jeden Tipp dankbar!!!


Viele Grüße

Thomas

Re: Zeilenumbruch beim CSV Import erzwingen

Verfasst: Mi, 11.03.2015 16:46
von Stephan
z.B., die Zeile aFile = "d:\csv_spezial.csv" muss zunächst auf deine csv-Datei angepasst werden:

Code: Alles auswählen

Sub import_csv_spezial()
	aFile = "d:\csv_spezial.csv"
	Dim gesamtinhalt()
	iNumber = Freefile
	Open aFile For Input As iNumber
	While not eof(iNumber)
		Line Input #iNumber, sLine
		If sLine <>"" then
			akt = UBOUND(gesamtinhalt())
			Redim Preserve gesamtinhalt(akt+2)
			tmp = Split(sLine, "\r\n")
			gesamtinhalt(akt+1) = tmp(0)
			gesamtinhalt(akt+2) = tmp(1)
		end if
	wend
	Close #iNumber
	
	dokument = StarDEsktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, Array())
	blatt = dokument.Sheets(0)
	For i = 0 To UBOUND(gesamtinhalt())
		teilinhalt = Split(gesamtinhalt(i), ";")
		For j = 0 To UBOUND(teilinhalt())
			blatt.getCellByPosition(j, i).FormulaLocal = teilinhalt(j)
		Next j
	Next i
End Sub

Gruß
Stephan

Re: Zeilenumbruch beim CSV Import erzwingen

Verfasst: Do, 12.03.2015 10:55
von komma4
Linux Kommandozeile:

Code: Alles auswählen

sed 's/\\r\\n/\n/g' eingabe.csv > ausgabe.csv

Für Windows gibt es dieses Unixtool auch (Tante Google hilft)