✍️ Text Tools

Markdown Table Generator

Paste CSV or TSV to generate a Markdown table. Auto-detects comma/tab, supports column alignment, and escapes pipe characters. Everything stays in your browser.

Examples (click to try)

How to Use the Markdown Table Generator

Paste CSV or TSV and the first row becomes the header, with a separator row added automatically. Tab-separated data copied from a spreadsheet is auto-detected. Pick a column alignment to add colons to the separator row, which controls text alignment when rendered.

Examples

  • name,role,score + Alice,Editor,95| name | role | score | + separator + data row
  • Alignment "Center" → separator becomes | :---: | :---: | :---: | (centered columns)
  • Alignment "Right" → separator becomes | ---: | (great for number columns)
  • Cell containing a|b → escaped to a\|b so the table stays intact
  • Uneven rows (a,b and 1,2,3) → padded to the widest row with blank cells

Where Markdown Tables Are Useful

  • README files, GitHub issues, pull requests and project documentation.
  • Converting a small spreadsheet selection into a clean Markdown table.
  • Preparing aligned comparison tables for docs without hand-writing pipes.

CSV Parsing Scope

This tool is intended for simple CSV or TSV copied from a spreadsheet. It is not a full CSV parser for quoted cells containing delimiters, embedded line breaks, or mixed delimiter conventions. Always inspect the generated columns before publishing.

Markdown table support also differs between renderers, and this format cannot express merged cells or fixed column widths. Use CSV ⇄ JSON when the goal is structured-data conversion.

FAQ

Is my data sent to a server?
No. Conversion runs entirely in your browser; nothing is transmitted or stored externally.
Does it support tab-separated (TSV) input?
Yes. Comma and tab are auto-detected, so TSV copied from a spreadsheet pastes in directly.
What if rows have different column counts?
It aligns to the row with the most columns and pads missing cells with blanks, so uneven rows are handled without errors.
Will a pipe (|) inside a cell break the table?
No. Any | inside a cell is automatically escaped to \| before output.
What if I do not want the first row as the header?
The first row is always treated as the header. Add a header row before pasting when your data has none. To leave the header empty, put a row of bare commas matching the column count (for three columns, two commas) at the top.
What happens to line breaks inside a cell?
A newline inside a quoted cell is replaced with a br tag so the cell stays on one line, because a Markdown table row cannot span lines. Renderers that allow HTML, such as GitHub, show it as a line break; renderers with HTML disabled show the tag as literal text.
Can I set a different alignment per column?
The selector applies one alignment to every column. To vary it, edit the separator row in the output by hand — for left, left, right you would write :-- then :-- then --: . Only the colon positions matter, so the number of hyphens does not change the rendered result.