Markdown Table Generator

Type your table into the grid and copy the Markdown out. Column alignment is a control rather than something you count colons for, and you can paste a block of cells straight in from a spreadsheet.

From

The only part of this site that uses a server. The address is sent to it so the page can be fetched, because a browser is not allowed to fetch someone else's page itself. Your own files are never involved.

Nothing here is uploaded. The parsing happens on this page.
Edit
Paste or upload something above and it will appear here.
ToDataMarkupDocumentsCodeSchemasImages

The output will appear here once there is a table to convert.

Writing the syntax by hand

A Markdown table is pipes between cells and a dashed rule under the header. That is easy for three columns and tedious for eight, and the tedium is where the mistakes come from: one missing pipe and the whole row renders as text.

Alignment is set by putting colons in the rule. A colon on the left is left-aligned, on the right is right-aligned, on both is centred. The control here writes them so you do not have to remember which is which.

What Markdown tables cannot do

No merged cells, no nested tables, no multi-line cells. A row ends at the newline, so a value that needs a line break uses a <br> tag, which every common renderer passes through.

Tables are not in the original Markdown specification at all. They come from GitHub Flavored Markdown, which is why they work on GitHub, GitLab, Obsidian and most static site generators, and not in every renderer that calls itself Markdown.

Questions

Can I paste from Excel or Google Sheets?

Yes. Copying cells puts tab-separated text on the clipboard, which is detected automatically. Paste into the box above the grid and the columns split correctly.

Do the columns have to line up in the source?

No. Renderers ignore the padding entirely. It is there so the raw file is readable to whoever opens it next, which is usually worth the extra bytes.

How do I put a pipe character inside a cell?

Escape it with a backslash. Typing a pipe in the grid here does that for you in the output, so a value like a|b stays one cell.

Already have the data somewhere else?

Other generators