Skip to content
Toolbench

Markdown Table Generator

New

Paste from a spreadsheet or a CSV and get a Markdown table whose columns line up — or straighten one that no longer does.

Runs entirely in your browser

Loading tool...

How to use

  1. Copy a range from a spreadsheet, or paste CSV — the separator is detected for you.
  2. Choose an alignment, and clear the header switch if your first row is data.
  3. Build the table and copy it into your README, issue or wiki page.
  4. Paste an existing Markdown table instead to re-align its columns.

Features

  • Detects commas, semicolons, tabs and pipes, so a paste straight out of Excel, Sheets or Numbers just works.
  • Handles quoted fields, so a comma inside a value stays inside that value.
  • Pads every column to the same width, which is what makes the source readable in a diff.
  • Escapes pipes and replaces line breaks with <br>, the two things a Markdown cell cannot hold.
  • Squares ragged rows and says how many it had to pad, rather than emitting a table that renders as a paragraph.

Frequently asked questions

Can I make a table without a header row?
Not really, and that is Markdown rather than this tool: the syntax has no headerless table — the row above the dashes is always rendered as a header. Turning the switch off keeps your first row as data and leaves the header cells blank, which renders as an empty header strip. It is the closest thing available.
Why is the alignment I set being ignored?
Because the input was already a Markdown table with alignment markers in it. Colons in the separator row are a decision someone made about that table, so they win over the setting; a table without markers takes the alignment you choose here.
Does padding change how the table renders?
No. The extra spaces exist only in the source, and every Markdown renderer strips them. Padding is for the human reading the diff; turn it off if you would rather have the shortest possible source.
What happens to a cell containing a pipe?
It is escaped as \| so the cell survives. An unescaped pipe would end the cell early and shift every value in that row one column to the left, which is the failure people usually find after publishing.

Render Markdown to HTML with raw HTML escaped rather than passed through — because pasted text is untrusted text.

Convert CSV or TSV into JSON, handling quoted fields the way a spreadsheet exports them.

Turn a JSON array into a spreadsheet, with columns taken from every record.