Skip to content
DataCraft

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.

Columns to keep
Rows
4
Columns
5
Delimiter
Comma
Duplicates
0
Parsed cleanly: every row has the same number of fields.

Preview

First 4 of 4 rows

idnamerolecityjoined
1Ada LovelaceEngineerLondon1843-01-01
2Grace HopperAdmiralNew York1944-01-01
3Alan TuringMathematicianLondon1936-01-01
2Grace HopperAdmiralNew York1944-01-01

Export

Generated in this tab — nothing is uploaded.

Output
Deterministic output: the same input always produces these exact bytes.

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. 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. 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. 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. 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.

  • 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 tool
  • SQL 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 tool
  • XML formatter

    Soon

    Pretty-print XML with configurable indentation, validate tag nesting and convert between XML and JSON. In development on the same client-side pipeline.

    In development