Öffnen Sie eine CSV-Datei, um ihre Struktur zu prüfen: jeden Datensatz gegen die Feldanzahl der Kopfzeile, leere und doppelte Spaltennamen, verirrte Anführungszeichen, gemischte Zeilenenden und Leerzeilen. Optional legen Sie Regeln pro Spalte fest, etwa Ganzzahl, Datum, E-Mail, Pflichtfeld, eindeutig, zulässige Werte oder ein regulärer Ausdruck. Jedes Problem wird mit Datenzeile, Spalte und Wert aufgeführt. Die Regeln verwenden das Vokabular von Frictionless Table Schema. Die Datei wird in Ihrem Browser geprüft, nicht hochgeladen.
So validieren Sie eine CSV-Datei
- Öffnen Sie eine
.csv-,.tsv- oder.txt-Datei. Trennzeichen und ein Byte-Order-Mark für UTF-8 oder UTF-16 werden erkannt. Sehen die Spalten falsch aus, wählen Sie in den Importeinstellungen ein anderes Trennzeichen oder eine ältere Codierung. - Geben Sie bei Bedarf die Anzahl der Spalten an, die jeder Datensatz haben muss. Bleibt das Feld leer, gilt die Spaltenzahl der Kopfzeile.
- Fügen Sie bei Bedarf Regeln für die Spalten hinzu, auf die es Ihnen ankommt: einen Typ, ob ein Wert Pflicht ist oder eindeutig sein muss, zulässige Werte, Minimum und Maximum, einen Längenbereich oder ein Muster.
- Starten Sie die Prüfung und arbeiten Sie den Bericht ab: zuerst die Fehler, dann die Warnungen. Korrigieren Sie Werte im CSV-Editor oder räumen Sie sie mit CSV bereinigen auf, und validieren Sie dann erneut.
Um vor dem Schreiben von Regeln die Typen, leeren Werte und unterschiedlichen Werte jeder Spalte zu sehen, erstellen Sie mit CSV analysieren ein Profil der Datei.
Strukturprüfungen
| Feldanzahl (Fehler) | Ein Datensatz hat mehr oder weniger Felder als die Kopfzeile oder als die von Ihnen angegebene Zahl. RFC 4180 erwartet, dass jeder Datensatz gleich viele Felder hat; eine Abweichung bedeutet meist ein Trennzeichen ohne Anführungszeichen oder einen fehlenden Wert. |
|---|---|
| Leere Spaltenüberschrift (Fehler) | Ein Spaltenname ist leer oder besteht nur aus Leerzeichen. Der Bericht nennt seine Position. |
| Doppelte Spaltenüberschrift (Fehler) | Zwei Spaltennamen sind nach dem Entfernen von Leerzeichen gleich. Der Bericht nennt beide Positionen. |
| Verirrtes Anführungszeichen (Warnung) | Ein Anführungszeichen steht mitten in einem Wert ohne Anführungszeichen, etwa 5" screen. Der Wert bleibt wie geschrieben; der Bericht nennt die Anzahl für die Datei. |
| Text nach schließendem Anführungszeichen (Warnung) | Nach einem schließenden Anführungszeichen folgen vor dem nächsten Trennzeichen weitere Zeichen, wie in "abc"x. |
| Gemischte Zeilenenden (Warnung) | Die Datei mischt CRLF, LF und CR als Datensatzende. Der Bericht zählt jede Art. |
| Leerzeilen (Warnung) | Leere Zeilen zwischen Datensätzen. Sie werden übersprungen und im Bericht gezählt. |
| Umgebende Leerzeichen (Warnung) | Ein Wert hat Leerzeichen vor oder nach dem Text. Standardmäßig aktiv; Werte, die nur aus Leerzeichen bestehen, werden nicht gemeldet. |
Ein Wert in Anführungszeichen, der nie geschlossen wird, beendet die Prüfung mit einem Fehler, der den Datensatz nennt, in dem er beginnt – denn der Rest der Datei lässt sich nicht mehr zuverlässig in Datensätze aufteilen.
Spaltenregeln
| Typ: integer (Ganzzahl) | Nur optionales Vorzeichen und Ziffern, etwa -12 oder 007. Werte jenseits von ±9.007.199.254.740.991 werden gemeldet; für lange IDs verwenden Sie daher eine Textregel mit Muster. |
|---|---|
| Typ: number (Zahl) | Einfache Dezimalschreibweise mit Punkt, etwa 3.5, -0.25 oder 1e3. Keine Tausendertrennzeichen, Währungsangaben oder umgebenden Leerzeichen – ein Dezimalkomma wie in deutschen Exporten wird also gemeldet. |
| Typ: boolean (Wahrheitswert) | true oder false in beliebiger Groß- und Kleinschreibung. 1, 0, yes und no werden gemeldet. |
| Typ: date, datetime (Datum, Datum mit Uhrzeit) | Ein tatsächlich existierendes Kalenderdatum im Format YYYY-MM-DD; 2024-02-30 wird also gemeldet. „datetime“ ergänzt eine Uhrzeit (2024-03-05T09:30, optional mit Sekunden und einem Versatz wie Z oder +02:00). |
| Typ: string mit Format | E-Mail (eine einfache Formprüfung auf name@domain.tld, kein Test der Zustellbarkeit), URI (eine absolute URL mit Schema) oder UUID (Versionen 1–8). |
| Pflichtfeld | Der Wert darf nicht leer sein. Ohne diese Regel bestehen leere Werte jede andere Regel. |
| Eindeutig | Kein Wert darf sich in der Spalte wiederholen. Der Bericht nennt die Zeile, in der er zuerst vorkam. Leere Werte werden nicht verglichen. |
| Zulässige Werte | Der Wert muss einem der aufgeführten Werte exakt entsprechen, einschließlich Groß- und Kleinschreibung und Leerzeichen. |
| Minimum, Maximum | Eingeschlossene Grenzen für Ganzzahl- und Zahlenspalten bzw. ISO-Datumswerte für Datums- und Datum-mit-Uhrzeit-Spalten. |
| Mindest- und Höchstlänge | Gezählt in Unicode-Zeichen: é und 日 zählen jeweils als ein Zeichen. |
| Muster | Ein regulärer Ausdruck, der – wie Table Schema es verlangt – auf den ganzen Wert passen muss, zum Beispiel [A-Z]{2}\d{4}. Groß- und Kleinschreibung wird unterschieden. |
Eine Regel gilt für die Spalte, deren Überschrift exakt ihrem Namen entspricht; Regeln für Spalten, die nicht in der Datei vorkommen, werden übersprungen. Regeln lassen sich als Table Schema-JSON-Datei speichern und für den nächsten Export wieder laden; unbekannte Typen und Schlüssel in einem geladenen Schema werden ignoriert.
Den Bericht lesen
- Zeilennummern zählen die Datensätze nach der Kopfzeile (die Kopfzeile ist Zeile 0). Ein Wert mit Zeilenumbruch in Anführungszeichen bleibt ein Datensatz; die Zeilennummer kann daher von der Zeilennummer im Texteditor abweichen.
- Jedes Problem nennt seine Spalte und zitiert den Wert, sodass Sie im CSV-Viewer oder im Editor danach suchen können.
- Fehler verletzen die Struktur oder eine Regel; Warnungen weisen auf Daten hin, die gültiges CSV sind, aber häufig Importprobleme verursachen.
- Aufgelistet werden bis zu 5.000 Probleme. Darüber hinaus werden die Summen je Problemart weiter gezählt, und die Liste wird als gekürzt markiert.
Grenzen und Datenschutz
Der Validator liest einen Datensatz nach dem anderen. Dateien über der interaktiven Grenze von 25 MB werden daher als Datenstrom in einem Hintergrund-Worker geprüft, mit Fortschrittsanzeige und Abbruchmöglichkeit. Im Datenstrommodus werden Datensätze mit weniger Feldern als die Kopfzeile derzeit vor der Prüfung aufgefüllt; als Fehler bei der Feldanzahl werden dort also nur Datensätze mit zusätzlichen Feldern gemeldet.
Die Validierung läuft in Ihrem Browser. Die CSV-Datei wird nicht auf einen Server hochgeladen.
Beispiel
Ein Export von Anmeldungen, geprüft mit vier Regeln: id ist eine eindeutige Pflicht-Ganzzahl, email ein Pflicht-Text im E-Mail-Format, signup_date ein Datum, und plan erlaubt basic, pro und team. Die Ausgabe ist der Bericht des Validators, nach der Zusammenfassung ein Problem pro Zeile: ein unmögliches Datum, eine E-Mail ohne Domain-Endung, Pro in falscher Schreibweise, eine wiederholte ID, eine fehlende E-Mail und team mit abschließendem Leerzeichen – das ist zugleich eine Warnung und kein zulässiger Wert.
id,email,signup_date,plan 1,ana@example.com,2024-02-30,pro 2,kim@example,2024-03-01,Pro 2,bao@example.com,2024-03-04,basic 4,,2024-03-05,team
{"rows":4,"errors":6,"warnings":1,"truncated":false}
{"code":"type","row":1,"column":"signup_date","value":"2024-02-30","params":{"type":"date"}}
{"code":"format","row":2,"column":"email","value":"kim@example","params":{"format":"email"}}
{"code":"enum","row":2,"column":"plan","value":"Pro","params":{"allowed":"basic, pro, team"}}
{"code":"unique","row":3,"column":"id","value":"2","params":{"first":2}}
{"code":"whitespace","row":4,"column":"plan","value":"team ","params":{}}
{"code":"required","row":4,"column":"email","value":"","params":{}}
{"code":"enum","row":4,"column":"plan","value":"team ","params":{"allowed":"basic, pro, team"}}Fragen und Antworten
Warum wird ein Wert mit Leerzeichen gegen die Liste zulässiger Werte gemeldet?
Regeln vergleichen den Wert genau so, wie er geschrieben ist, ohne Leerzeichen zu entfernen: team ist nicht team. Kürzen Sie die Spalte mit CSV bereinigen, oder korrigieren Sie den Export.
Verändert die Validierung meine Datei?
Nein. Sie liest die Datei nur und meldet, was sie findet. Beheben Sie die Probleme im Editor oder im Quellsystem.
Kann ich dieselben Regeln für jeden Monatsexport wiederverwenden?
Ja. Speichern Sie die Regeln als Table-Schema-JSON-Datei und laden Sie sie beim nächsten Mal; die Regeln werden den Spalten über den Namen zugeordnet.