CSV to Markdown table Converter
Turn CSV into a neat GitHub-flavored Markdown table: columns padded so they line up in the source, numbers right-aligned, and pipes inside cells escaped so nothing breaks.
CSV to Markdown table Converter
Runs in your browser — nothing you enter is uploaded or stored.
Scratchpad auto-saved
How it works — in four simple steps
No signup and nothing to install — it all runs in your browser.
Add your CSV
Paste it into the left box, press Open file, or drag a .csv file onto it. Sample loads a realistic example.
Set the options
Adjust the options above the boxes — the output updates instantly as you change them.
Check the result
Read the status line: it reports rows, keys and any value that couldn't be represented in Markdown table.
Copy or download
Copy the Markdown table or download it as a .md file. Nothing was uploaded at any point.
Numeric columns are right-aligned automatically with --: so figures line up when rendered.
Features
Delimiter auto-detection
Comma, semicolon, tab or pipe is sniffed from the first lines — European Excel exports with ; just work.
Header row or not
Use the first row as field names, or treat every row as data with generated column1, column2… names.
Column alignment
Numbers right-aligned automatically, or force left, centre or none in the delimiter row.
Readable or compact
Padded columns that line up in a code editor, or compact output for the smallest diff.
Private by design
Parsing and conversion run in your browser with JavaScript — your data is never uploaded, logged or stored.
About the CSV to Markdown table Converter
Markdown tables are the standard way to show tabular data in README files, GitHub issues and pull requests, GitLab, docs sites (MkDocs, Docusaurus, VitePress), Obsidian and Notion. The syntax is defined by the GitHub Flavored Markdown spec: a header row, a delimiter row of dashes, then one row per line, with cells separated by pipes.
This converter parses your CSV properly (RFC 4180, delimiter auto-detected), then writes the table with every column padded to its widest cell so the raw Markdown is readable in a code editor and diffs cleanly. With Alignment set to auto, columns where every value is a number get a right-aligned delimiter (---:) so figures line up; you can force left, centre or no alignment instead.
Characters that would break the table are handled: a literal | inside a cell is written as \|, and a line break inside a cell becomes <br>, which GitHub renders as a new line inside the cell. Tick Compact to drop the padding when you want the smallest diff.
Examples
A benchmark result with a numeric column, a cell containing a pipe and one with a line break.
library,ops/sec,notes
fast-csv,184220,"streams | async"
papaparse,201554,"browser + node"
csv-parse,96310,"strict RFC 4180
slower on big files"| library | ops/sec | notes |
| :-------- | ------: | :------------------------------------- |
| fast-csv | 184220 | streams \| async |
| papaparse | 201554 | browser + node |
| csv-parse | 96310 | strict RFC 4180<br>slower on big files |This output was produced by the converter on this page with the default options — load it with the “Benchmark” preset above and change any option to see the effect.
How CSV maps to Markdown table
| In CSV | Becomes in Markdown table |
|---|---|
| Header row | | a | b | header |
| — | delimiter row | --- | --: | |
| Numeric column (auto) | right-aligned --: |
a|b in a cell | a\|b |
| Line break in a cell | <br> |
| Empty cell | empty | | |
Things that trip people up
- No merged cells. GFM tables have no colspan or rowspan; every row needs the same number of cells. Use HTML if you need spans.
- Rendering differences. Alignment colons and <br> work on GitHub, GitLab and most renderers; very old or strict CommonMark renderers without the tables extension show the raw text.
- Leading/trailing spaces. Markdown trims cell whitespace, so indentation inside cells is lost.
- Huge tables. Hundreds of rows render but are hard to read; link to the CSV file instead and show a summary table.
CSV vs Markdown table at a glance
| Property | CSV | Markdown table |
|---|---|---|
| Specification | RFC 4180 (2005) | GitHub Flavored Markdown 0.29-gfm |
| File extension | .csv | .md |
| Media type | text/csv | text/markdown (RFC 7763) |
| Data types | text only — every cell is a string | text (inline Markdown allowed) |
| Comments | No | HTML comments |
| Nesting | None (flat rows) | None |
- CSV: Fields containing a comma, a double quote or a line break must be wrapped in double quotes, and a quote inside is written twice ("").
- Markdown table: A GFM table needs a header row and a delimiter row (| --- |); colons set alignment and a literal pipe inside a cell is written \|.