Zeilenumbruch beim CSV Import erzwingen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

merc24
Beiträge: 1
Registriert: Mi, 11.03.2015 12:13

Zeilenumbruch beim CSV Import erzwingen

Beitrag 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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Zeilenumbruch beim CSV Import erzwingen

Beitrag 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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Zeilenumbruch beim CSV Import erzwingen

Beitrag 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)
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten