Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

CSV-Import mit Zeilenumbruch in der Zelle

11,459 views
Skip to first unread message

Diedrich Ehlerding

unread,
Sep 23, 2011, 9:23:34 AM9/23/11
to
[Excel 2007]

Moin,

ein eher kosmetisches Problem:

Ich möchte aus einem irgendwo auf einem Unixsystem laufenden Skript eine
CSV-Datei erzeugen, die ich dann später in Excel öffnen will. Es gibt
Zellen, in denen längerer Text stehen wird. Ich möchte erreichen, dass
dieser Text an bestimmter Stelle innerhalb der Zelle umbrochen wird.

Sowas kann man bei direkter Texteingabe erreichen, indem man mit
Alt+Return einen Zeilenumbruch innerhalb der Zelle erzwingt. Wenn man so
eine Exceltapete als CSV-Format speichert, dann enthält die CSV-Datei
ein CR (nicht CRLF). Ich habe daher versucht, die CSV-Datei in dieser
Form zu erzeugen - d.h. an entsprechender stelle ein CR anstatt eines
CRLF einzutragen - aber es geht nicht.

Konkret: meine Beispieltabelle enthielt in Zelle A1 das Wort "Text", in
Zelle A2 "Text mit(AltReturn)Umbruch"; das wird exportiert als

[HVR1975N] D:\Profiles\HVRDEHLE\My Documents>type Umbruch.csv
Text;"Text mit
Umbruch"

[HVR1975N] D:\Profiles\HVRDEHLE\My Documents>

wobei eben (nachgesehen per hex-Editor) zwischen "mit" und "Umbruch" nur
ein CR (0x0a) und kein CRLF (0x0a0d) steht.

Aber so etwas weigert Excel sich wieder einzulesen, bzw. er hört beim
\CR auf und vergisst daher alles hinter dem zelleninternen Zeilenumbruch.

Was tun?

Bernhard Sander

unread,
Sep 23, 2011, 10:33:59 AM9/23/11
to
Hallo Diedrich,
Es gibt zwar ziemlich viele Varianten von CSV-Formate, eines haben sie aber alle
gemeinsam: ein Zeilenende beendet den Datensatz. Insofern ist es unmöglich,
mehrzeilige Zelleninhalte in einer CSV-Datei zu speichern.
Abhilfe: verwende ein anderes Zeichen, evtl. ein Symbol aus mehreren Zeichen,
das sonst nicht im Text vorkommt und ersetze dieses Zeichen/Symbol nach dem
Einlesen durch einen Zeilenumbruch.

Nebenbei bemerkt: ein Zeilenende unter Unix ist üblicherweise nur das CR (0x0a).
Excel akzeptiert aber beide Varianten als Zeilenende.

Gruß
Bernhard Sander
>
> Was tun?
>

Wilfried

unread,
Sep 26, 2011, 4:35:24 AM9/26/11
to
Diedrich Ehlerding <diedrich....@ts.fujitsu.com> wrote:

> [Excel 2007]
Du hast offenbar CR und LF verwechselt:
CR ist 0x0d, LF ist 0x0a
Zeilenende ist CRLF 0x0d0a (für Textdateien in DOS und Windows).

Ich hab's in Excel 2010 ausprobiert.
- In der csv-Datei muss ein LF (0x0a) stehen, CR (0x0d) wird ignoriert.
- Man darf die csv-Datei nicht über "Daten - Externe Daten" importieren,
sonden nur über "Datei öffnen", dann geht es.

Grüße

--
Wilfried Hennings
bitte in der Newsgruppe antworten, die Mailadresse ist ungültig

Diedrich Ehlerding

unread,
Sep 27, 2011, 2:16:03 AM9/27/11
to
Am 26.09.2011 10:35, schrieb Wilfried:

> Ich hab's in Excel 2010 ausprobiert.
> - In der csv-Datei muss ein LF (0x0a) stehen, CR (0x0d) wird ignoriert.

> - Man darf die csv-Datei nicht �ber "Daten - Externe Daten" importieren,
> sonden nur �ber "Datei �ffnen", dann geht es.

Das war ja mein urspr�nglicher Plan, aber mit Excel2007 geht das ofenbar
nicht. Dann werde ich wohl warten m�ssen, bis auf meinem (zentral
gemanageten) B�ro-PC Office 2010 installiert wird. Wenn ich eine von
Excel2007 als CSV exportierte Datei (mit 0x0a) versuche �ber "�ffnen" in
eben dieses Excel2007 einzulesen, wird der Rest hinter dem 0x0a ignoriert.

Diedrich

j-kl...@gmx.de

unread,
Sep 3, 2017, 3:33:41 PM9/3/17
to
Wenn auch Jahre später: hier noch eine Ergänzung. Alles oben geschriebene stimmt so... solange man eine amerikanische Lokalisierung verwendet. In der deutschen Lokalisierung ist aber der Default in .csv-Dateien mit einem Semikolon zu trennen (um die Erkennung von Dezimalzahlen zu erleichtern)

Lösung: in der ersten Zeile der .csv-Datei muss

sep=,

stehen!!!

s.frie...@googlemail.com

unread,
Apr 20, 2019, 4:18:41 PM4/20/19
to
Thanks so much! This helped. After an hour of trying and searching.
0 new messages