DevTools Hub

Search tools

Search for a developer tool

Markdown

Markdown Table Generator

Convert CSV, TSV, or pasted data into a properly aligned GFM markdown table.

Part of the Markdown Toolkit
Markdown output
3 rows × 3 columns

What this tool does

Paste CSV, tab-separated data (straight from a spreadsheet copy), or even an existing markdown table you want realigned, and get back a properly padded GFM table — header, delimiter row, and body all column-aligned so it's as readable in a raw .md file as it is rendered.

Why alignment matters even though renderers don't require it

GitHub-Flavored Markdown doesn't care whether a table's columns are padded to line up — a parser splits on | and trims whitespace either way, so |a|b| and a fully padded table render identically. The padding is entirely for whoever reads the raw source: a hand-edited table that isn't re-aligned after adding one longer row becomes unreadable as plain text, even though it still renders fine.

Pasting an existing table re-aligns it instead of duplicating it

If the input already looks like a markdown table — a header row, a delimiter row of ----style cells, and a body — the delimiter row is detected and dropped before rebuilding, rather than being treated as a literal data row. That makes this tool double as a formatter for a table that's drifted out of alignment after edits, not just a CSV-to-table converter.

A literal pipe or line break in a cell would otherwise break the table

Both are handled automatically: a literal | inside a cell is escaped to \| so it can't be misread as a column boundary, and a line break inside a cell is converted to <br> — GFM table rows can't contain a real newline, since the parser treats every physical line as exactly one row.

FAQ

What happens if a row has the wrong number of cells?

The first row sets the column count. A shorter row is padded with empty cells; a longer row is truncated — rather than letting one ragged row silently add an unlabeled column to the whole table.

Does it handle CSV fields with a quoted, embedded comma?

No — delimiters split on every occurrence, so a quoted "Smith, John" field would be read as two cells. For data like that, copy it as tab-separated straight from a spreadsheet instead (the Tab delimiter), which sidesteps the issue entirely.

Is my data uploaded anywhere?

No — everything happens entirely in your browser. Nothing is sent to a server.

Related tools