[GELÖST] LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Saxenpower
Beiträge: 311
Registriert: 29.11.2006 09:37:53

[GELÖST] LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von Saxenpower » 17.11.2022 18:37:04

Hi,

ich habe Probleme mit LibreOffice 7.3 eine CSV-Datei mit 9181 Zeilen zu öffnen. Da kommt immer die Warnung "Die Daten konnten nicht vollständig geladen werden, da die maximale Anzahl von Zeichen pro Zelle überschritten wurde." und angezeigt werden dann nur 2851 Zeilen.

Was kann man dagegen machen?

Viele Grüße

SaxenPower
Zuletzt geändert von Saxenpower am 18.11.2022 16:33:31, insgesamt 3-mal geändert.

michaa7
Beiträge: 4611
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von michaa7 » 17.11.2022 18:57:36

Ich würde mir erstmal Zeile 2851 (und eventuell 2850 und 2852) anschauen, bzw diese drei Zeilen testweise als separate Datei aus der CVS herauskopieren und in Libreoffice importieren.
Eigentlich sollte das scheitern, weil irgendetwas als ein riesiger Zelleninhalt interpretiert wird.

Aus dem LO Forum (https://www.libreoffice-forum.de/viewtopic.php?t=16673)
Die Zeichenkette einer Zelle darf 65.535 Zeichen beinhalten,...
Saxenpower hat geschrieben: ↑ zum Beitrag ↑
17.11.2022 18:37:04
maximale Anzahl von Zeichen pro Zelle überschritten
Es geht um eine Zelle. Das sollte in der CVS Datei sichtbar sein.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Saxenpower
Beiträge: 311
Registriert: 29.11.2006 09:37:53

Re: LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von Saxenpower » 17.11.2022 19:04:50

Hallo Micha,

vielen Dank für Dein Feedback und den Hinweis. Ich untersuche gerade die CSV-Datei. Vielleicht werde ich ja fündig.

Saxenpower
Beiträge: 311
Registriert: 29.11.2006 09:37:53

Re: LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von Saxenpower » 17.11.2022 19:18:28

Ich habe die Zeile gefunden. Eigentlich steht da im Verhältnis zu den Anderen nichts Besonderes drin.

Benutzeravatar
Phineas
Beiträge: 348
Registriert: 20.06.2012 20:26:19

Re: LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von Phineas » 17.11.2022 19:25:13

Bei solchen Fehlern vermute ich erstmal einen Fehler wegen Windows-Zeilenenden (CRLF - schau mal mit file)
Falls es aber tatsächlich überlange Zellen gibt, sollte awk helfen können.

Edit: Zu spät.

michaa7
Beiträge: 4611
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von michaa7 » 17.11.2022 19:34:17

Saxenpower hat geschrieben: ↑ zum Beitrag ↑
17.11.2022 19:18:28
Ich habe die Zeile gefunden. Eigentlich steht da im Verhältnis zu den Anderen nichts Besonderes drin.
Dann lösche die Zeile doch einfach mal (in einer kopierten testversion derr CVS DAtei) und schau was beim import passiert. Das kann ja eigentlich nur eine inkompatible Formatierung sein, sonst müsste man das ja sehn.

@Phineas

Wenn du awk erwähnst solltest du vielleich auch mitteilen was genau damit getan werden soll. Denn mit man awk brauch Otto normal user länger als andere mit nem informatikstudium ...
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
Phineas
Beiträge: 348
Registriert: 20.06.2012 20:26:19

Re: [GELÖST] LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von Phineas » 17.11.2022 22:58:31

Ich dachte an das Herausfiltern aller Zellen, die das Limit überschreiten. Aber das Thema ist ja schon gelöst.

Mir scheint, dass Du die Kompliziertheit von awk sehr überschätzt. Damit kann man zwar fies lesbaren Code schreiben, aber eben auch schön strukturierten, leicht verständlichen Code.

Saxenpower
Beiträge: 311
Registriert: 29.11.2006 09:37:53

Re: [GELÖST] LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von Saxenpower » 18.11.2022 08:04:02

Phineas hat geschrieben: ↑ zum Beitrag ↑
17.11.2022 22:58:31
Ich dachte an das Herausfiltern aller Zellen, die das Limit überschreiten. Aber das Thema ist ja schon gelöst.
Ich denke Lösungen sind immer willkommen. Ich habe eben nur besagte Zeile herausgenommen, was aber keine echte Lösung ist, weil später das Ganze in eine MySQL-DB importiert werden soll. Fehler dürften da schädlich sein.
Phineas hat geschrieben: ↑ zum Beitrag ↑
17.11.2022 22:58:31
Mir scheint, dass Du die Kompliziertheit von awk sehr überschätzt. Damit kann man zwar fies lesbaren Code schreiben, aber eben auch schön strukturierten, leicht verständlichen Code.
Auch das interessiert mich. weil ich awk eben auch sehr schätze.
Also das hier ist für Alle gedacht, nicht nur für mich, weil ich gerade das Problem hatte.

Saxenpower
Beiträge: 311
Registriert: 29.11.2006 09:37:53

Re: LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von Saxenpower » 18.11.2022 09:06:07

Phineas hat geschrieben: ↑ zum Beitrag ↑
17.11.2022 19:25:13
Bei solchen Fehlern vermute ich erstmal einen Fehler wegen Windows-Zeilenenden (CRLF - schau mal mit file)
Falls es aber tatsächlich überlange Zellen gibt, sollte awk helfen können.

Edit: Zu spät.

Code: Alles auswählen

file kunde.csv 
kunde.csv: ISO-8859 text, with very long lines
Das sagt zwar, was die Meldung von LibreOffice auch sagt, zeigt aber weder explizit die Stelle, wo der Fehler sitzt.
Also Dein awk-Vorschlag würde mich brennend interessieren. Mach es bitte nicht so spannend - wir alle hier im Forum partizipieren von Deinem Wissen und können es weitergeben.

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von MSfree » 18.11.2022 09:17:14

Saxenpower hat geschrieben: ↑ zum Beitrag ↑
18.11.2022 09:06:07
Also Dein awk-Vorschlag würde mich brennend interessieren.
Es gibt nichts, für das sich im Internet keine Lösung finden ließe:
https://stackoverflow.com/questions/167 ... line-tools

Code: Alles auswählen

awk '{print length}' input.txt
liefert z.B. die Länge jeder Zeile von "input.txt". Man könnte die Ausgabe auch noch um die Zeilennummer ergänzen und dann nach längsten Zeilen sortieren:

Code: Alles auswählen

awk '{i=i+1;print length" "i}' input.txt | sort -n

Saxenpower
Beiträge: 311
Registriert: 29.11.2006 09:37:53

Re: LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von Saxenpower » 18.11.2022 09:35:30

Dankeschön für Deine Informationen. Nur leider hilft die Ausgabe auch nicht weiter.
Ich habe 9181 Datensätze:

Code: Alles auswählen

awk '{i=i+1;print length" "i}' kunde.csv | wc -l
awk: Kommandozeile:1: (FILENAME=kunde.csv FNR=4) Warnung: Es wurden unbekannte Multibyte-Daten gefunden. Ihre Daten entsprechen eventuell nicht der gesetzten Region
9181
Die Problemzeile liegt bei 2851 oder direkt danach, der Output in diesem Bereich sieht so aus:

Code: Alles auswählen

awk '{i=i+1;print length" "i}' kunde.csv | sort -n

...
409 2849
409 285
409 2850
409 2851
409 2852
409 2853
409 2854
...
Wie zu sehen ist, sind die Zeilen alle gleich lang, nämlich 409 Zeichen. Also ist diese Methode nicht sonderlich aussagekräftig.

Saxenpower
Beiträge: 311
Registriert: 29.11.2006 09:37:53

Re: LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von Saxenpower » 18.11.2022 09:44:29

Das ist die Zeile 2851, die noch importiert wird:

Code: Alles auswählen

 awk '/primecompst./ {print $0}' kunde.csv | wc -m
410
und das die direkt (2852) danach (nicht mehr importiert)

Code: Alles auswählen

awk '/Japanproxy/ {print $0}' kunde.csv | wc -m
407
Die ist sogar 3 Zeichen kürzer, was der awk-Befehl gar nicht zeigt.


Ich drücke es mal so aus, es wäre sehr dienlich, wenn man explizit sehen kann, was das Problem in der Zeile ist.

Saxenpower
Beiträge: 311
Registriert: 29.11.2006 09:37:53

Re: LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von Saxenpower » 18.11.2022 10:05:13

Wenn ich jetzt die Zeile 2582 raus nehme und ganz ans Ende der CSV-Datei setze, dann macht LibreOffice beim CSV-Import absolut keine Probleme. Seltsam 8O

michaa7
Beiträge: 4611
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von michaa7 » 18.11.2022 11:25:47

Saxenpower hat geschrieben: ↑ zum Beitrag ↑
18.11.2022 09:44:29
Das ist die Zeile 2851, die noch importiert wird:

Code: Alles auswählen

 awk '/primecompst./ {print $0}' kunde.csv | wc -m
410
und das die direkt (2852) danach (nicht mehr importiert)

Code: Alles auswählen

awk '/Japanproxy/ {print $0}' kunde.csv | wc -m
407
Die ist sogar 3 Zeichen kürzer, was der awk-Befehl gar nicht zeigt.


Ich drücke es mal so aus, es wäre sehr dienlich, wenn man explizit sehen kann, was das Problem in der Zeile ist.
Schuss ins Blaue:

Kommt sonstwo in der CVS ein "./" vor?
Der Punkt "." vor dem slash "/" kommt mir komisch vor zumal er in der nächsten Zeile fehlt ... und (geraten) vielleicht in der Kombination "./" als "aktuelles Verzeichnis" interpretiert wird ... ja, dann müsste ein Leerzeichen davor sein ... was weiß ich was der import macht ... lösche testweise doch mal den Punkt raus ...
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
Phineas
Beiträge: 348
Registriert: 20.06.2012 20:26:19

Re: LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von Phineas » 18.11.2022 15:30:58

Saxenpower hat geschrieben: ↑ zum Beitrag ↑
18.11.2022 10:05:13
Wenn ich jetzt die Zeile 2582 raus nehme und ganz ans Ende der CSV-Datei setze, dann macht LibreOffice beim CSV-Import absolut keine Probleme. Seltsam 8O
Die Zeile würde ich mir jetzt mit hexdump ansehen.

Code: Alles auswählen

sed -n 2582p kunde.csv | hexdump -C

Saxenpower
Beiträge: 311
Registriert: 29.11.2006 09:37:53

Re: LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von Saxenpower » 18.11.2022 16:32:47

Also vorhin hatte ich in LibreOffice das Problem in der betreffenden Zeile gefunden. Und zwar in den 5 letzten Spalten (W, X, Y, Z und AA):

In der Spalte W stehen Werte drin wie:

Code: Alles auswählen

falls nicht da, bei "Vins de;                                             ;                                             ; ; 0.00
Das heißt in Spalte W stehen Semikolons und eine Zahl drin, die auf die Spalten X, Y, Z und AA hätten verteilt werden müssen - in AA müsste 0.00 stehen. Die sind alle leer.
Das Problem lag bei dem Lieferanten der Datei kunde.csv, sein Programm hatte das falsch von ISAM nach CSV importiert und jetzt kommt es, sein MS Excel kann diese defekte CSV-Datei problemlos öffnen. Der konnte nicht verstehen, dass ich nicht alle Datensätze sehen kann, schwört aber auf das MS-Gesocks.

Vielen Dank für die Antworten, haben sehr geholfen.

Viele Grüße
Saxenpower

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von MSfree » 18.11.2022 16:47:10

Saxenpower hat geschrieben: ↑ zum Beitrag ↑
18.11.2022 16:32:47

Code: Alles auswählen

falls nicht da, bei "Vins de;                                             ;                                             ; ; 0.00
Prima. Die Gänsifüßchen leiten einen String ein. Der Parser sucht nach dem abschließenden Gänsifüßchen, findet bis zum Dateiende keinen und in der Folge wird der Eintrag zu lang. :facepalm:

Beim Import mußt du das Gänsefüßchen als Stringtrennzeichen deaktivieren.

Saxenpower
Beiträge: 311
Registriert: 29.11.2006 09:37:53

Re: LibreOffice öffnet nicht alle Zeilen aus CSV-Dateien

Beitrag von Saxenpower » 18.11.2022 17:03:31

MSfree hat geschrieben: ↑ zum Beitrag ↑
18.11.2022 16:47:10
Beim Import mußt du das Gänsefüßchen als Stringtrennzeichen deaktivieren.
Wohl eher die, die das Teil gefüttert hatten. Ich habe nur die CSV-Datei erhalten - 8 MB groß. Da nach solchen Eskapaden zu suchen, ist wahnwitzig.

Antworten