# CSV Editor — Manual

> Vollständige Funktionsbeschreibung des CSV Editors: Import, jeder Toolbar-Button, Settings, Trennzeichen-Erkennung, CSV-/JSON-Export und die Grenzen.

Source: https://www.jpkc.com/db/tools/csv/manual/

Zurück zur Übersicht: [CSV Editor](https://www.jpkc.com/db/tools/csv/) · Tool live öffnen: [www.jpkc.com/tools/csv/](https://www.jpkc.com/tools/csv/)

Dieses Manual beschreibt den **CSV Editor** vollständig: jeden Button der Toolbar, jede Einstellung, wie die Trennzeichen-Erkennung und der Parser arbeiten, welche Export-Formate es gibt und welche Grenzen gelten. Die Oberfläche des Tools ist auf Englisch — die Button- und Feld-Bezeichnungen werden hier deshalb in ihrer englischen Original-Schreibweise genannt (mit deutscher Erläuterung), damit du dich im echten Interface zurechtfindest.

## Aufbau der Oberfläche

Die Seite besteht aus zwei Karten: dem **Editor** mit Toolbar, Tabelle und Statusleiste sowie einer aufklappbaren **Settings**-Karte darunter. Beim ersten Laden versucht das Tool, eine zuvor automatisch gesicherte Tabelle aus dem Browser-Speicher wiederherzustellen; gibt es keine, startet es mit einer leeren Tabelle in der eingestellten Standardgröße.

## Daten importieren

Es gibt drei gleichwertige Wege, eine Tabelle zu laden. Alle drei nutzen dieselbe Trennzeichen-Erkennung und denselben Parser, und alle drei respektieren die Header-Einstellung.

### Open (Datei öffnen)

Öffnet den Datei-Dialog. Akzeptiert werden Dateien mit den Endungen `.csv`, `.tsv` und `.txt`. Die Datei wird lokal per `FileReader` als Text eingelesen — es gibt keinen Upload. Nach dem Öffnen meldet eine kurze Einblendung Dateiname, Zeilenzahl und das erkannte Trennzeichen.

### Drag-and-drop

Du kannst eine Datei direkt auf die Editor-Karte ziehen. Beim Überfahren wird der Rand hervorgehoben; beim Loslassen wird die Datei wie über **Open** eingelesen.

### Paste (aus der Zwischenablage)

Liest den Textinhalt der Zwischenablage und baut daraus eine **neue** Tabelle. Damit kannst du eine Markierung aus Excel, Google Sheets oder Numbers direkt einfügen (diese kopieren tab-getrennt, was die Auto-Erkennung als Tabulator erkennt). Der Zugriff auf die Zwischenablage setzt die entsprechende Browser-Berechtigung voraus; verweigert der Browser den Zugriff, erscheint ein Hinweis.

## Die Toolbar im Detail

### New

Erzeugt eine leere Tabelle in der unter **Settings** eingestellten Standardgröße (Default Rows × Default Columns). Bereits geladene Daten werden dabei ersetzt.

### Store und Restore

**Store** sichert die aktuelle Tabelle (samt Spaltenüberschriften) ausdrücklich im LocalStorage des Browsers. **Restore** lädt diese gespeicherte Tabelle wieder; der Button ist deaktiviert, solange nichts gespeichert ist. Unabhängig davon speichert das Tool automatisch (siehe [Automatische Speicherung](#automatische-speicherung)).

### Copy

Kopiert die **gesamte** Tabelle **tab-getrennt** in die Zwischenablage. Das Trennzeichen ist hier fest der Tabulator — nicht das in den Settings gewählte —, damit sich die Daten direkt in eine Tabellenkalkulation einfügen lassen.

### Paste

Siehe [Paste (aus der Zwischenablage)](#paste-aus-der-zwischenablage) oben.

### Transpose

Vertauscht Zeilen und Spalten: Aus einer Tabelle mit *m* Zeilen und *n* Spalten wird eine mit *n* Zeilen und *m* Spalten. Praktisch, wenn ein Export „quer" liegt.

### Undo und Redo

Machen die letzte Änderung rückgängig bzw. stellen sie wieder her. Funktioniert auch über die Tastatur mit **Strg+Z** (Undo) und **Strg+Y** (Redo).

### Fullscreen

Schaltet einen Vollbild-Modus, der Kopf, Fuß und die Settings-Karte ausblendet und den Editor das ganze Fenster füllen lässt. Mit demselben Button oder der **Esc**-Taste verlässt du ihn wieder.

### CSV und JSON (Export)

Laden die Tabelle als Datei herunter — Details unter [Export](#export).

### Reset

Setzt den Editor zurück: Nach einer Sicherheitsabfrage werden die gespeicherten Daten gelöscht und eine leere Tabelle erstellt.

### Suche

Das Suchfeld rechts in der Toolbar filtert die Tabelle live (mit kurzer Verzögerung beim Tippen). Das **×** daneben oder die **Esc**-Taste setzt die Suche zurück.

## Die Settings

Die Settings-Karte klappst du über ihre Kopfzeile auf. Alle Werte werden bei Änderung automatisch im Browser gespeichert.

### CSV Delimiter (Trennzeichen)

Bestimmt, womit Felder getrennt werden — sowohl beim Import als auch beim CSV-Export. Optionen:

- **Auto-detect** (Standard) — automatische Erkennung beim Import (siehe unten). Für den Export fällt „auto" auf das Komma zurück.
- **Comma (`,`)**
- **Semicolon (`;`)** — typisch für CSV-Exporte aus deutschsprachigem Excel.
- **Tab**
- **Pipe (`|`)**

### Default Rows und Default Columns

Die Größe einer neu erstellten leeren Tabelle (**New**). Default Rows steht auf 10 (1–500), Default Columns auf 8 (1–50). Diese Werte betreffen nur die leere Startgröße, nicht den Import — eine geladene Datei behält ihre tatsächliche Größe.

### First row is header

Ist die Checkbox aktiv, wird die **erste Zeile als Spaltenüberschrift** behandelt: Beim Import werden daraus die Spaltentitel (statt einer Datenzeile), und beim Export wirkt sich das auf beide Formate aus (siehe unten). Voraussetzung beim Import ist, dass die Datei mehr als eine Zeile hat.

## Trennzeichen-Erkennung (Auto-detect)

Steht das Trennzeichen auf **Auto-detect**, untersucht der Editor die **erste Zeile** der Datei und zählt darin das Vorkommen der vier Kandidaten Komma, Semikolon, Tabulator und Pipe — Zeichen innerhalb von Anführungszeichen werden korrekt übersprungen. Das häufigste Zeichen gewinnt; kommt keines vor, fällt die Erkennung auf das **Komma** zurück. Weil nur die erste Zeile betrachtet wird, ist die Erkennung schnell, aber von einer typischen Kopfzeile abhängig — bei untypischem Dateiaufbau stellst du das Trennzeichen besser von Hand ein.

## Der Parser (RFC 4180)

Das Einlesen erledigt ein eigener, **RFC-4180-konformer** Parser (keine externe Bibliothek). Er beherrscht:

- **Anführungszeichen**: Felder in `"…"` dürfen das Trennzeichen, Zeilenumbrüche und Anführungszeichen enthalten.
- **Verdoppelte Anführungszeichen**: `""` innerhalb eines Felds wird zu einem einzelnen `"`.
- **Verschiedene Zeilenenden**: `\r\n`, `\n` und `\r` werden alle als Zeilenwechsel erkannt.
- **Leere Schlusszeilen** werden am Ende abgeschnitten.

## Export

### CSV exportieren

Lädt die Tabelle als Datei **`data.csv`** herunter. Das Trennzeichen ist das in den Settings gewählte (bei „auto" das Komma). Die Ausgabe ist RFC-4180-konform: Felder, die das Trennzeichen, ein Anführungszeichen oder einen Zeilenumbruch enthalten, werden in `"…"` gesetzt, enthaltene Anführungszeichen verdoppelt; Zeilen werden mit `\r\n` getrennt. Ist **First row is header** aktiv, werden die Spaltenüberschriften als erste Zeile vorangestellt.

### JSON exportieren

Lädt die Tabelle als Datei **`data.json`** herunter (eingerückt mit zwei Leerzeichen). Die Struktur hängt vom Header-Modus ab:

- **Header-Modus aus** — ein **Array von Arrays**: jede Zeile ist ein Array ihrer Zellwerte.

```json
[
  ["Alice", "30", "Berlin"],
  ["Bob", "25", "Hamburg"]
]
```

- **Header-Modus an** (und Überschriften vorhanden) — ein **Array von Objekten**: jede Zeile wird ein Objekt, dessen Schlüssel die Spaltenüberschriften sind.

```json
[
  { "name": "Alice", "age": "30", "city": "Berlin" },
  { "name": "Bob", "age": "25", "city": "Hamburg" }
]
```

Alle Werte sind Strings — der Editor interpretiert Zahlen beim Export nicht eigenständig als numerische JSON-Typen.

### Copy (Zwischenablage)

Der **Copy**-Button ist die dritte Ausgabe: die gesamte Tabelle tab-getrennt in der Zwischenablage. Siehe [Copy](#copy).

## Statusleiste

Unter der Tabelle zeigt eine Leiste vier Informationen:

- die **Größe** der Tabelle (Zeilen × Spalten),
- die **aktive Zelle** in Spreadsheet-Notation (z. B. `B3`) samt — gekürzter — Vorschau ihres Inhalts,
- bei einer **Mehrfach-Auswahl** den markierten Bereich (z. B. `A1:C5`) und, falls Zahlen markiert sind, automatisch **SUM**, **AVG** und **COUNT**,
- den **Speicher-Status** (Zeitpunkt und Zeilenzahl der zuletzt gesicherten Tabelle).

## Automatische Speicherung

Jede Änderung an Zellen oder an der Struktur löst nach kurzer Verzögerung (rund zwei Sekunden) eine automatische Sicherung in den LocalStorage des Browsers aus. So übersteht deine Arbeit einen versehentlichen Reload. Gespeichert werden Tabelle und Spaltenüberschriften, alles ausschließlich lokal. Schlägt das Speichern fehl (etwa weil der Browser-Speicher voll ist), erscheint ein Hinweis.

## Architektur und Datenschutz

Der CSV Editor ist eine **rein clientseitige Anwendung** ohne Server-Komponente: Dateien werden lokal per `FileReader` eingelesen, im Browser bearbeitet und über einen erzeugten Download wieder ausgegeben. Es gibt keinen Upload, keinen Account und keine Datenübertragung. Die Tabellen-Engine ist **Jspreadsheet CE** (mit jSuites). Weil CSV-Dateien oft sensible Daten enthalten, ist das ein bewusster Vorteil: Die Daten verlassen deinen Rechner nicht.

## Grenzen

- **Auto-Erkennung nur über die erste Zeile.** Ist die Kopfzeile untypisch, kann das falsche Trennzeichen gewählt werden — dann manuell in den Settings festlegen.
- **Vier Trennzeichen.** Erkannt und auswählbar sind nur Komma, Semikolon, Tabulator und Pipe; exotische Trennzeichen werden nicht unterstützt.
- **Feste Export-Dateinamen.** Die Downloads heißen immer `data.csv` bzw. `data.json`; einen eigenen Namen vergibst du erst beim Speichern.
- **Werte sind Strings.** Beim JSON-Export werden Zahlen nicht in JSON-Number-Typen umgewandelt, sondern als Strings ausgegeben.
- **Copy ist immer tab-getrennt** — unabhängig vom eingestellten Trennzeichen.
- **Header-Import braucht mehr als eine Zeile**, damit aus der ersten Zeile Überschriften werden.
- **LocalStorage-Grenzen.** Sehr große Tabellen können den Browser-Speicher sprengen; dann scheitert die automatische Sicherung (mit Hinweis), die Bearbeitung selbst läuft weiter.
- **Zwischenablage braucht eine Berechtigung.** **Paste** funktioniert nur, wenn der Browser den Lese-Zugriff auf die Zwischenablage erlaubt.

Für den Einstieg und das große Bild siehe die [Übersichtsseite](https://www.jpkc.com/db/tools/csv/), für konkrete Abläufe die [Beispiele](https://www.jpkc.com/db/tools/csv/examples/) und für Kniffe die [Tipps & Tricks](https://www.jpkc.com/db/tools/csv/tips/). Ausprobieren kannst du alles direkt im [Tool](https://www.jpkc.com/tools/csv/).

