CSV Editor — Manual
Complete feature reference for the CSV Editor: import, every toolbar button, the settings, delimiter detection, CSV/JSON export, persistence, and the limits.
Back to the overview: CSV Editor · Open the tool live: www.jpkc.com/tools/csv/
This manual describes the CSV Editor in full: every toolbar button, every setting, how delimiter detection and the parser work, which export formats exist, and what limits apply. The tool's interface is in English, so the button and field names here are the real labels.
How the interface is laid out
The page consists of two cards: the editor with toolbar, table, and status bar, and a collapsible Settings card below it. On first load the tool tries to restore a previously auto-saved table from browser storage; if there is none, it starts with an empty table at the configured default size.
Importing data
There are three equivalent ways to load a table. All three use the same delimiter detection and the same parser, and all three respect the header setting.
Open (open a file)
Brings up the file dialog. Files with the extensions .csv, .tsv, and .txt are accepted. The file is read locally as text via FileReader — there is no upload. After opening, a brief toast reports the file name, row count, and the detected delimiter.
Drag-and-drop
You can pull a file straight onto the editor card. The border highlights as you hover; on drop the file is read just as with Open.
Paste (from the clipboard)
Reads the clipboard's text contents and builds a new table from it. This lets you drop in a selection from Excel, Google Sheets, or Numbers directly (these copy tab-separated, which auto-detection recognizes as a tab). Clipboard access requires the matching browser permission; if the browser denies it, a notice appears.
The toolbar in detail
New
Creates an empty table at the default size set in Settings (Default Rows × Default Columns). Any data already loaded is replaced.
Store and Restore
Store explicitly saves the current table (including column headers) to the browser's LocalStorage. Restore loads that saved table again; the button is disabled while nothing is stored. Independently of this, the tool saves automatically (see Automatic saving).
Copy
Copies the entire table tab-separated to the clipboard. The separator here is always the tab — not the one chosen in Settings — so the data pastes straight into a spreadsheet.
Paste
See Paste (from the clipboard) above.
Transpose
Swaps rows and columns: a table with m rows and n columns becomes one with n rows and m columns. Handy when an export is laid out sideways.
Undo and Redo
Undo the last change or redo it. Also work from the keyboard with Ctrl+Z (undo) and Ctrl+Y (redo).
Fullscreen
Toggles a fullscreen mode that hides the header, footer, and the Settings card and lets the editor fill the whole window. The same button or the Esc key exits it.
CSV and JSON (export)
Download the table as a file — details under Export.
Reset
Resets the editor: after a confirmation prompt, the saved data is cleared and an empty table is created.
Search
The search field on the right of the toolbar filters the table live (with a short delay as you type). The × next to it or the Esc key clears the search.
The settings
Expand the Settings card via its header. All values are saved automatically in the browser when changed.
CSV Delimiter
Determines what separates fields — both on import and on CSV export. Options:
- Auto-detect (default) — automatic detection on import (see below). For export, "auto" falls back to the comma.
- Comma (
,) - Semicolon (
;) — typical for CSV exports from German-language Excel. - Tab
- Pipe (
|)
Default Rows and Default Columns
The size of a newly created empty table (New). Default Rows is 10 (1–500), Default Columns is 8 (1–50). These values only affect the empty starting size, not the import — a loaded file keeps its actual size.
First row is header
When the checkbox is on, the first row is treated as column headers: on import it becomes the column titles (instead of a data row), and on export it affects both formats (see below). On import this requires the file to have more than one row.
Delimiter detection (Auto-detect)
With the delimiter set to Auto-detect, the editor inspects the first line of the file and counts the occurrences of the four candidates comma, semicolon, tab, and pipe — characters inside quotes are skipped correctly. The most frequent character wins; if none occurs, detection falls back to the comma. Because only the first line is examined, detection is fast but depends on a typical header line — for an unusual file layout, it's better to set the delimiter manually.
The parser (RFC 4180)
Reading is handled by a dedicated, RFC 4180-compliant parser (no external library). It handles:
- Quotes: fields in
"…"may contain the delimiter, line breaks, and quotes. - Doubled quotes:
""inside a field becomes a single". - Different line endings:
\r\n,\n, and\rare all recognized as line breaks. - Trailing empty rows are trimmed off the end.
Export
Export CSV
Downloads the table as a file named data.csv. The delimiter is the one chosen in Settings (the comma for "auto"). The output is RFC 4180-compliant: fields containing the delimiter, a quote, or a line break are wrapped in "…", contained quotes are doubled, and rows are separated with \r\n. If First row is header is on, the column headers are prepended as the first row.
Export JSON
Downloads the table as a file named data.json (indented with two spaces). The structure depends on header mode:
- Header mode off — an array of arrays: each row is an array of its cell values.
[
["Alice", "30", "Berlin"],
["Bob", "25", "Hamburg"]
]- Header mode on (and headers present) — an array of objects: each row becomes an object whose keys are the column headers.
[
{ "name": "Alice", "age": "30", "city": "Berlin" },
{ "name": "Bob", "age": "25", "city": "Hamburg" }
]All values are strings — the editor does not interpret numbers as numeric JSON types on export.
Copy (clipboard)
The Copy button is the third output: the entire table tab-separated on the clipboard. See Copy.
Status bar
Below the table, a bar shows four pieces of information:
- the size of the table (rows × columns),
- the active cell in spreadsheet notation (e.g.
B3) plus a — truncated — preview of its contents, - for a multi-cell selection, the selected range (e.g.
A1:C5) and, if numbers are selected, automatic SUM, AVG, and COUNT, - the storage status (timestamp and row count of the most recently saved table).
Automatic saving
Every change to cells or to the structure triggers, after a short delay (about two seconds), an automatic save to the browser's LocalStorage. That way your work survives an accidental reload. The table and column headers are saved, all of it strictly local. If saving fails (for instance because browser storage is full), a notice appears.
Architecture and privacy
The CSV Editor is a purely client-side application with no server component: files are read locally via FileReader, edited in the browser, and emitted again through a generated download. There is no upload, no account, and no data transfer. The table engine is Jspreadsheet CE (with jSuites). Because CSV files often contain sensitive data, that's a deliberate advantage: the data does not leave your machine.
Limits
- Auto-detection looks only at the first line. If the header line is atypical, the wrong delimiter may be chosen — then set it manually in Settings.
- Four delimiters. Only comma, semicolon, tab, and pipe are detected and selectable; exotic delimiters are not supported.
- Fixed export file names. Downloads are always called
data.csvordata.json; you assign your own name when saving. - Values are strings. On JSON export, numbers are not converted to JSON number types but emitted as strings.
- Copy is always tab-separated — regardless of the chosen delimiter.
- Header import needs more than one row for the first row to become headers.
- LocalStorage limits. Very large tables can exceed browser storage; the automatic save then fails (with a notice), while editing itself continues.
- Clipboard needs a permission. Paste only works if the browser allows read access to the clipboard.
For the starting point and the big picture, see the overview page; for concrete workflows the examples; and for clever tricks the tips & tricks. You can try all of it directly in the tool.