CalcHub

Markdown Table Generator — CSV/TSV to Markdown Table

Paste CSV or tab-separated data and get a GitHub-flavored Markdown table — pipes escaped, alignment preserved, ready to drop into READMEs, issues and docs.

Last reviewed 2026-10-19. Rates change — verify against the official sources linked below before relying on these figures.

What this is based on

  • First row becomes the header row; remaining rows are body rows.
  • Delimiter auto-detected (tab beats comma when both appear — spreadsheet paste is TSV).
  • Literal pipe characters inside cells are escaped as \| so the table can't break.
  • Column alignment is left for all columns — set alignment by editing the --- separator row if you need :--: or --:.
  • Everything runs locally in your browser — pasted content is never uploaded, logged or stored.

Spreadsheet → docs in one paste

Excel and Google Sheets copy as tab-separated text, which is exactly what this tool eats. Paste, copy the table, drop it in a PR description or README — no plugin needed.

Markdown tables are display syntax, not data: long cells make the source ugly but render fine. Keep tables to a handful of columns — wider belongs in a link to a real spreadsheet.

Markdown table quirks

The separator row (|---|---|) is mandatory — without it the first row renders as plain text. Alignment colons are optional decoration most renderers honor.

Pipes inside cell content must be escaped as \| or the row splits early. Code spans protect most characters but NOT the pipe inside tables — that's the one escape that surprises everyone.

Frequently asked questions

How do I make a table in Markdown?
Header row, a --- separator row, then one | a | b | row per data row. Paste your data above and it's generated for you.
Can I paste straight from Excel?
Yes — spreadsheet copy produces tab-separated text, which this detects automatically.
How do I center a column?
Edit the separator row: |:--:| centers, |--:| right-aligns, |--| or |:--| left-aligns.
My table renders broken — why?
Nine times out of ten it's an unescaped | inside a cell (escaped here automatically) or a missing separator row.

Related calculators