Tech

CSV to Markdown table converter

Paste CSV and we turn it into a Markdown table ready for GitHub, a README, or your blog. It detects the delimiter, respects quoted fields, and escapes pipes automatically.

Instant🔒In your browserNo signup
Live

The syntax of a Markdown table

A Markdown table is built with pipes (|) that separate columns and dashes (---) that separate the header from the body. The first row holds the column titles, the second is the mandatory separator row, and the rest are the data. This tool handles that structure for you: it counts the columns, aligns the pipes, and adds the separator row without you typing a single dash.

Column alignment

Alignment is controlled with colons in the separator row. Without colons (---) the renderer uses its default alignment, usually left. With a colon on the left (:---) you align left explicitly, with colons on both sides (:---:) you center, and with a colon on the right (---:) you align right. Pick the one you want and the tool applies it to every column.

Use in GitHub, README, and docs

Markdown tables are the standard for showing tabular data in GitHub READMEs, issues, pull requests, and wikis, plus most static site generators. Converting a CSV to Markdown lets you drop a dataset exported from a spreadsheet straight into your documentation, with no screenshots or hand-written HTML. Because it is plain text, it stays versioned in Git and renders cleanly in any viewer.

Quotes, commas, and newlines

CSV is tricky when a field contains the delimiter itself. The standard solves this by wrapping the field in double quotes: everything inside, including commas and newlines, counts as text. A literal double quote inside the field is written doubled (""). The tool implements this parsing, so a value like "Garcia, Ana" stays in a single cell and is not split into two columns.

Common gotchas to watch for

The main one is the pipe: if a value contains |, it must be escaped as \| or the table breaks. The tool does this automatically. Another point is that Markdown does not accept real line breaks inside a cell, which is why we replace them with <br>. Finally, remember that every Markdown table needs a header row: if your CSV lacks one, turn off the corresponding option and generic headers are generated.

Reference: from CSV to Markdown

A minimal CSV with a header and its equivalent Markdown table:

CSVGenerated Markdown
name,age
Ana,30
Luis,25
| name | age |
| --- | --- |
| Ana | 30 |
| Luis | 25 |

FAQ

How do I convert a CSV into a Markdown table?

Paste the CSV, pick the delimiter (or "Auto-detect"), say whether the first row is the header, and click "Generate table". It shows ready to copy.

Which delimiters are supported?

Comma, semicolon, and tab, plus auto-detect that picks the most frequent one in the first line.

Does it handle fields with commas inside?

Yes. If the field is wrapped in double quotes, commas and newlines inside are text. Escaped quotes ("") become a single one.

What about newlines inside a cell?

They are replaced with <br>, because Markdown does not allow real line breaks inside a cell.

Why are pipes escaped?

Because | separates columns. If a value contains one, it is escaped as \| so it does not break the table.

Can I choose alignment?

Yes: default, left, center, or right. It is encoded with colons in the separator row, for example :---:.

What if my CSV has no header?

Turn off "First row is the header" and automatic headers are generated (Column 1, Column 2...).

Is my CSV uploaded to a server?

No. Everything is processed in your browser; your CSV never leaves your device.

Was this generator useful?