Convert CSV to a Markdown table
Paste comma, tab, semicolon or pipe separated values and get an aligned GFM table. Quoted fields containing commas are parsed correctly.
- Runs in your browser
- Files are never uploaded
- Free, no account
| Row actions | |||
|---|---|---|---|
- Rows
- 4
- Columns
- 3
- Cells filled
- 3
Your table never leaves this tab — check it yourself—
Starting the network probe…
The counter above wraps fetch, XMLHttpRequest and navigator.sendBeacon in this tab and counts every call. It does not block anything — it just reports.
Two ways to verify independently
- Turn off Wi-Fi or enable airplane mode, then use the tool. It keeps working, because the page is already fully loaded.
- Open your browser devtools, switch to the Network tab, clear it, and run the tool. No new row appears.
Why this matters
In 2025 researchers found that popular online formatters had retained tens of thousands of user-submitted snippets — JSONFormatter.org and CodeBeautify together exposed roughly 80,000 saved documents, many containing live cloud credentials, private keys and internal database connection strings, because “format this” quietly meant “upload this”. A separate incident exposed roughly 3.5 million user PDFs on a document-conversion service. The only structural fix is not sending the data in the first place: this site is served under a Content-Security-Policy whose connect-src contains no third-party origin, so a request off this device cannot be made even by accident.
Why a naive comma split is not enough
Most quick CSV-to-Markdown converters split each line on commas. That works until a field contains one, which in real data is immediate: names (“Doe, Jane”), addresses, currency in some locales, and any free-text column. RFC 4180 defines the escape — wrap the field in double quotes, and double any quote inside it — and this page implements it.
| CSV field | Correct value | What a naive split produces |
|---|---|---|
"Doe, Jane" | Doe, Jane | Two columns |
"She said ""hi""" | She said "hi" | Stray quotes |
| A quoted field containing a newline | One multi-line value | Two broken rows |
,, | Two empty fields | Usually collapsed to one |
Delimiter detection
The parser sniffs the first rows for the separator that produces a consistent column count across them, and recognises comma, tab, semicolon and pipe. That matters more than it sounds:
- Anything copied out of a spreadsheet arrives tab-separated, not comma-separated.
- Excel in a locale where the comma is the decimal separator exports semicolon-separated files and still calls them CSV.
- Log and database exports frequently use pipe.
The detected delimiter is named next to the input, so a wrong guess is obvious before you copy anything.
Getting the header right
A GFM table always renders its first row as a header — there is no headerless table in the format.
If your CSV starts with data, switch off first row is a header in the output
options and a generic Column 1, Column 2 header is generated so none of
your rows are consumed. If your CSV has two header rows, merge them in the grid first.
Alignment for numeric columns
Right-aligning numbers is the single change that makes a data table readable, because the digits line up by place value and a reader can compare magnitudes at a glance. Click a column’s alignment button to cycle left, centre and right — that writes the colon markers into the separator row. Left for text, right for numbers and dates, centre sparingly.
Edit before you export
The parsed CSV lands in an editable grid rather than going straight to Markdown, which means you can drop the three columns you do not need, fix a typo, trim a trailing empty row, and set alignment — all before generating a single character of output. That is usually faster than cleaning the CSV first, and much faster than fixing the Markdown afterwards.
Large files
There is no row limit and no upload, so the constraint is what your browser will comfortably render as input fields. A few thousand rows is fine; a hundred thousand is not, and the answer there is a script rather than a web page. For anything mid-sized, paste the header and a representative sample, get the shape right, then apply the same transformation to the full file with CSV to JSON or a spreadsheet.
Questions
Does it handle quoted fields?
Yes. The parser follows RFC 4180: a field wrapped in double quotes may contain commas, newlines and doubled quotes, and none of them break the column split. A naive split on commas — which most online converters do — mangles exactly those rows.
How is the delimiter detected?
By sniffing the first rows for the separator that yields a consistent column count. Comma, tab, semicolon and pipe are all recognised, which covers CSV exported by European locales (semicolon) and anything copied out of a spreadsheet (tab).
My first row is data, not a header. What do I do?
Turn off "first row is a header" in the output options. Markdown tables always render a header row, so a generic `Column 1`, `Column 2` header is emitted instead and all of your rows stay in the body.
Can I edit before exporting?
Yes — the parsed data lands in an editable grid, so you can fix a typo, delete a column or set alignment before copying the Markdown. Everything happens locally.