CSV, TSV and table converter
Paste a delimited file and export JSON, Markdown, an HTML table or SQL INSERT statements — with quoting preserved exactly as it was written.
- Comma, semicolon, tab or pipe
- Quoted fields kept intact
- JSON, Markdown, HTML and SQL
- Nothing is uploaded
Parse once, export anywhere
The delimiter detector, the duplicate remover and the column filter all feed one parse, so the preview, the statistics and every export stay in agreement.
Paste a delimited file
Comma, semicolon, tab or pipe — quoted fields with newlines are kept intact.
- Rows
- 4
- Columns
- 5
- Delimiter
- Comma
- Duplicates
- 0
Preview
First 4 of 4 rows
| id | name | role | city | joined |
|---|---|---|---|---|
| 1 | Ada Lovelace | Engineer | London | 1843-01-01 |
| 2 | Grace Hopper | Admiral | New York | 1944-01-01 |
| 3 | Alan Turing | Mathematician | London | 1936-01-01 |
| 2 | Grace Hopper | Admiral | New York | 1944-01-01 |
Export
Generated in this tab — nothing is uploaded.
How it works
Data tools that run in your tab
No uploads, no sign-ups and nothing to wait for: parsing and formatting happen inside this page, so the result appears while you type.
1. Paste the data you already have
A CSV export, a JSON payload, a one-line query. It stays in page state: the same textarea you typed into is what the parser reads.
2. Shape it with explicit options
Delimiter, header row, column filter, indentation, dialect, keyword case. Nothing is guessed silently — every choice is a control you can see and change.
3. Watch the output update as you type
Parsing is debounced so a large paste does not freeze the page, and the preview, the statistics and every export are produced from one parse.
4. Check it before you trust it
Warning rows, token counts and byte savings are shown next to the result, so a broken quote or a lost token is visible instead of silent.
Privacy by architecture
Nothing is uploaded — and you can verify it
Privacy claims are cheap, so this one is falsifiable: the app has no upload code path at all.
No upload endpoint exists
None of these tools has a POST route, a storage bucket or a proxy. Open DevTools → Network while you convert a file: the only requests are the page assets.
Your data stays in memory
Files, queries and column choices live in React state inside the tab and are never persisted. Close the tab and they are gone — nothing survives, because nothing was stored.
Deterministic output, byte for byte
The serialisers are hand-written and never consult the locale or the clock, so the same input produces exactly the same export every time you run it.
Free forever, no account required — the tools are static pages that run entirely on the client.
CSV converter FAQ
Quoting rules, delimiter detection, duplicate removal and what happens to large files.
How do I convert CSV to JSON?
Paste the file into the input box and pick JSON as the output format. The first record becomes the keys unless you turn off "First row is a header", and you get a JSON array of row objects with empty cells written as empty strings.
How do I convert CSV to a Markdown or HTML table?
Switch the output to Markdown or HTML. Markdown cells are padded to a fixed width and pipes inside values are escaped, and HTML output has its entities escaped, so the result is safe to paste straight into a README or a page.
How are quoted fields and semicolons handled?
Quoted fields follow RFC 4180: the delimiter, line breaks and doubled quotes inside quotes are treated as data, not structure. Semicolon separated exports (common from European spreadsheets) are detected automatically, and you can set the delimiter by hand at any time.
Why do I get a warning about rows with a different number of fields?
That message appears when some lines do not match the widest row. Shorter rows are padded with empty cells so the table stays rectangular, and the warning tells you how many rows were affected so you can check for a broken quote before trusting the result.
Can I remove duplicate rows and drop columns?
Yes. "Remove duplicate rows" keeps the first occurrence and compares every column, and the column chips let you untick anything you do not need — the preview, the statistics and every export update together.
Does converting a large CSV upload my data?
No. The file never leaves the tab: it is read as text in memory, parsed by the scanner in this page and serialised to the target format locally. There is no POST request anywhere in the app and no analytics payload containing your rows.
More free tools in the hub
JSON formatter
Validate JSON with an error position, format it with two spaces, four spaces or tabs, minify it, inspect the parse tree, and convert to YAML, XML or CSV with key count and depth statistics.
Open toolSQL formatter
Reformat a query with each clause on its own line and one column per line, uppercase or lowercase the keywords, and choose between Standard SQL, MySQL, PostgreSQL and SQLite.
Open toolXML formatter
SoonPretty-print XML with configurable indentation, validate tag nesting and convert between XML and JSON. In development on the same client-side pipeline.
In development