Markdown Table Generator
Turn pasted spreadsheet or CSV data into a Markdown or HTML table, with cells escaped properly.
About this tool
Converts tabular data into a Markdown table, an HTML table, or both. Copy straight from a spreadsheet, or paste CSV.
Two details are what make this worth a tool rather than a bit of typing.
**Pipes inside cells.** A `|` terminates a cell in Markdown, so a cell containing one silently shifts every column after it in that row. The result looks like a rendering bug and is a data problem, and it is invisible until somebody reads the table. They are escaped here.
**The separator is detected, not assumed.** A paste from a spreadsheet is tab-separated; an export is comma-separated; a copy from a rendered table is neither. Guessing wrong turns one column into six or six into one, so the detection looks at which candidate produces a consistent column count across rows.
Column alignment is supported, and rows with the wrong number of cells are reported rather than quietly padded.
Common questions
Why does my table break when a cell contains a pipe?
Because a pipe is the cell separator. Markdown reads it as the end of that cell, so everything after it shifts into the next column. Escaping it as \| fixes it, and this tool does that automatically.
Does the column width matter?
Not to any renderer. Padding cells to a consistent width makes the source readable as plain text, which matters if humans edit it. The output here is padded for that reason and renders identically either way.
How do I set column alignment?
Colons in the separator row: :--- for left, :---: for centre, ---: for right. The alignment option below writes them for you. Right alignment on numeric columns makes them far easier to compare.
What if my cells contain line breaks?
Markdown tables cannot hold them — a line break ends the row. Use <br> inside the cell, which most renderers accept, or use the HTML output instead.