Menü

Werkzeuge durchsuchenÄnderungsprotokoll

zum Navigieren zum ÖffnenBeschreiben Sie das Problem, nicht das Tool

Behalten Sie nur die CSV-Spalten bei, die Sie benötigen

Behalten Sie eine benannte oder positionelle Teilmenge einer CSV-, TSV- oder durch Pipes getrennten Datei bei, ordnen Sie diese Spalten neu an und laden Sie eine neue UTF-8-Tabelle herunter, ohne die Quelle hochzuladen oder Anführungszeichen mit Struktur zu verwechseln.

Eine UTF-8 CSV-, TSV- oder durch Trennzeichen getrennte Textdatei mit bis zu 20 MB. Es bleibt in dieser Registerkarte.

Eine genaue Überschrift pro Zeile oder Positionen wie Nr. 1 und Nr. 3. Lassen Sie das Feld leer, um jede Spalte zu behalten. Ordnen Sie die Zeilen neu an, um die Ausgabe neu anzuordnen.

Deaktivieren Sie dies für Daten ohne Kopfzeile und wählen Sie dann die Spalten nur anhand der #-Position aus.

Zeilen geschrieben
Nur Datenzeilen; Der Header wird nicht gezählt.
Spalten beibehalten
Spalten in der Quelle
Ausgabetrennzeichen

So funktioniert es

Die Auswahl ist positionell, auch wenn sie mit einem Namen beginnt

Eine durch Trennzeichen getrennte Tabelle ist eine Folge von Zeilen, und jede Zeile ist eine Folge von Feldern. Der optionale Header gibt diesen Positionen Namen, aber die Daten darunter gehören immer noch zu Positionen. Die Auswahl von Email bedeutet daher: Suchen Sie das eine Kopfzeilenfeld, dessen zugeschnittener Text genau Email ist, merken Sie sich seine auf Null basierende interne Position und kopieren Sie diese Position aus jeder späteren Zeile.

Diese Unterscheidung ist wichtig, wenn sich Überschriften wiederholen. Gegeben:

Name,Email,Email
Ada,home@example.test,work@example.test

Das Wort Email identifiziert keine Spalte. Bei der ersten Annahme würde eine gültig aussehende Datei mit der falschen Adresse erstellt, sodass das Tool die Mehrdeutigkeit verweigert. #2 wählt die erste E-Mail-Spalte aus und #3 wählt die zweite aus. Den Personen angezeigte Positionen sind einsbasiert, da #1 die erste sichtbare Tabellenspalte ist.

Eine leere Keep-List ist ebenfalls nützlich: Sie wählt jede Position aus. Dadurch kann das Tool ein Trennzeichen normalisieren oder eine Datei überprüfen, bevor der Besucher sie eingrenzt.

Der Parser kann nicht durch Kommas getrennt werden

Das Trennzeichen ist nur dann strukturell, wenn es sich außerhalb eines Felds in Anführungszeichen befindet. Das sind drei Felder, nicht vier:

Name,City,Note
Ada,London,"writes, tests"

Ein in Anführungszeichen gesetztes Feld kann sich auch über physische Zeilen erstrecken, und ein darin enthaltenes wörtliches Anführungszeichen wird zweimal geschrieben. Der Parser verarbeitet Zeichen daher mit einem einzigen Status: ob sie in Anführungszeichen stehen. Außerhalb von Anführungszeichen beendet ein Trennzeichen ein Feld und ein Zeilenumbruch einen Datensatz. Innerhalb von Anführungszeichen handelt es sich bei beiden um Text. Zwei Anführungszeichen hintereinander addieren ein Anführungszeichen zum aktuellen Wert, ohne diesen Zustand zu verlassen.

Die automatische Trennzeichenerkennung wendet dieselbe Regel auf den ersten vollständigen Datensatz an. Komma-, Semikolon-, Tabulator- und Pipe-Kandidaten werden nur außerhalb von Anführungszeichen gezählt. Eine explizite Auswahl bleibt verfügbar, da kein Erraten ein Trennzeichen wiederherstellen kann, das nicht in einer einspaltigen Kopfzeile erscheint.

Eine ausgearbeitete Auswahl

Beginnen Sie mit dieser vierspaltigen Datei:

Name,Email,City,Note
Ada,ada@example.test,London,"writes, tests"
Grace,grace@example.test,New York,"line one
line two"

Geben Sie die folgende Keep-Liste ein:

Email
Name

Das Ergebnis enthält 2 Datenzeilen, behält 2 von 4 Spalten und setzt E-Mail vor Name:

Email,Name
ada@example.test,Ada
grace@example.test,Grace

Das Komma und der eingebettete Zeilenumbruch in der verworfenen Notizspalte werden weiterhin korrekt analysiert; Weder kann eine Phantomzeile erstellt noch die Stadt unter eine andere Überschrift verschoben werden. Diese genauen Eingaben und die genauen CRLF-Ausgabebytes werden in den Tests des Tools bestätigt.

Was ändert sich in den heruntergeladenen Bytes?

Die ausgewählten Zellenwerte bleiben Text. Sie werden nicht als Datum oder Zahl geparst, daher bleibt ein Code wie 007 007. Eine kurze Zeile erhält einen leeren Wert für eine ausgewählte Position, die sie nicht enthält, anstatt zuzulassen, dass das nächste Feld seitwärts verschoben wird.

Die physische Darstellung kann sich ändern. Datensätze werden mit CRLF-Endungen geschrieben, Anführungszeichen werden nur dort hinzugefügt, wo das gewählte Ausgabetrennzeichen oder ein Zeilenumbruch dies erfordert, und unnötige Quellzitate verschwinden möglicherweise. Eine UTF-8-Bytereihenfolgemarkierung wird nur wiederhergestellt, wenn die Eingabe eine solche enthielt. Durch diese Änderungen bleibt die ausgewählte Tabelle erhalten, nicht die Byte-für-Byte-Formatierung um sie herum.

Verwenden Sie CSV zu JSON, wenn das nächste System benannte Objekte benötigt, oder JSON zu CSV, wenn eine strukturierte Antwort in eine flache Tabelle umgewandelt werden muss. Der Leitfaden zu [Zeilen, Datensätzen und Spalten] (/guides/rows-records-and-columns) erklärt, warum diese Formentscheidungen nicht allein aus der Zeichensetzung abgeleitet werden können.

So wird es gemacht

  1. Dekodieren Sie die ausgewählte Datei als UTF-8, zeichnen Sie alle führenden Bytereihenfolgemarkierungen auf und entfernen Sie sie, während die Zeilen analysiert werden.
  2. Verwenden Sie das ausgewählte Eingabetrennzeichen oder zählen Sie Kommas, Semikolons, Tabulatoren und Pipes außerhalb von Anführungszeichen im ersten vollständigen Datensatz, um es zu erkennen.
  3. Analysieren Sie Felder mit Anführungszeichen im RFC-Stil, sodass doppelte Anführungszeichen zu einem Anführungszeichen werden und Trennzeichen oder Zeilenumbrüche innerhalb eines in Anführungszeichen gesetzten Felds Zellentext bleiben.
  4. Lösen Sie jede nicht leere Keep-List-Zeile anhand einer exakt getrimmten Überschrift oder einer einsbasierten Überschrift auf
  5. Projizieren Sie die Kopfzeile und jede Datenzeile auf die gleichen geordneten Positionen und füllen Sie eine kurze Zeile mit leeren Zellen auf, anstatt spätere Daten zu verschieben.
  6. Escapen Sie die ausgewählten Werte für das angeforderte Trennzeichen, schreiben Sie CRLF-Datensatzenden, stellen Sie die Quell-Byte-Reihenfolge-Markierung wieder her, wenn eine vorhanden war, und bieten Sie die neue Datei lokal an.

Wovon es ausgeht

  • Eingabetext wird als UTF-8 dekodiert. Ältere Windows-Codepages müssen zunächst in UTF-8 konvertiert werden.
  • Die erste Zeile wird standardmäßig als Überschriften behandelt. Headerlose Dateien können nur mit Positionen wie ausgewählt werden
  • Die Überschriftensuche schneidet äußere Leerzeichen ab, stimmt aber ansonsten exakt und unter Berücksichtigung der Groß-/Kleinschreibung überein. Doppelte Überschriften müssen nach Position ausgewählt werden.
  • Das Tool behält vollständige Spalten bei und ordnet sie neu. Überschriften werden nicht umbenannt, Zeilen werden nicht gefiltert, Datentypen werden nicht abgeleitet und Tabellenformeln werden nicht ausgewertet.
  • Die Eingabegrenzen von 20 MB, 500.000 Zeilen, 5.000 Spalten und 64 MB für die Ausgabe beschränken den gesamten Vorgang im Browser.
  • Gleichwertige Dateien mit Trennzeichen können unterschiedliche Anführungszeichen und Datensatzenden verwenden. Ausgewählte dekodierte Zellwerte bleiben erhalten, nicht die ursprünglichen Bytes.

Fragen

Wird die CSV-Datei hochgeladen, bevor ihre Spalten entfernt werden?

Nein. Ein Mitarbeiter in diesem Browser-Tab liest, analysiert und schreibt die ausgewählte Datei neu. Der Browsertest der Seite lädt eine echte CSV-Datei und schlägt fehl, wenn eine Anfrage die Website verlässt, während die Datei vorhanden ist.

Wie wähle ich eine von zwei Spalten mit derselben Überschrift aus?

Verwenden Sie die einsbasierte Position, z. B. Nr. 2. Eine wiederholte Überschrift wird bewusst als mehrdeutig behandelt, anstatt stillschweigend die erste Kopie auszuwählen.

Unterbrechen Kommas oder Zeilenumbrüche in Anführungszeichen die neue Datei?

Nein. Ein Trennzeichen oder Zeilenumbruch zwischen Anführungszeichen bleibt Teil einer Zelle und zwei aufeinanderfolgende Anführungszeichen werden zu einem wörtlichen Anführungszeichen. Wenn die ausgewählten Spalten geschrieben werden, wird jeder Wert, der in Anführungszeichen gesetzt werden muss, erneut maskiert.

Schützt der Selektor Zellen vor Tabellenformeln?

Der Zellentext wird dadurch nicht verändert, da es sich hierbei um eine Positionsauswahl und nicht um einen bereinigenden Export handelt. Behandeln Sie eine Datei aus einer nicht vertrauenswürdigen Quelle als nicht vertrauenswürdig, wenn Sie sie in einer Tabellenkalkulationssoftware öffnen.

Quellen