MarkdownLab

Markdown Table Generator

Edit a real grid instead of counting pipe characters. Set alignment per column, paste in a CSV/TSV export or spreadsheet range, reorder or sort rows and columns, and copy out valid Markdown table syntax.

Runs entirely in your browser — files never leave your device.

3 rows
3 cols
Table
Markdown output
| Column 1 | Column 2 | Column 3 |
| :--- | :--- | :--- |
|  |  |  |
|  |  |  |

How it works

  1. 01Type directly into the header and data cells, click "Import CSV/TSV" to paste in existing tabular data, or paste a multi-cell range from Excel/Sheets straight into any cell — it fills the grid from that cell onward.
  2. 02Use the row/column steppers to grow or shrink the grid (up to 20 rows by 10 columns), and the ↑/↓/←/→ buttons next to each row or column to reorder them.
  3. 03Click a column's alignment label to cycle it between left, center, and right.
  4. 04Use the "Data" menu to transpose the table, sort by a column (numeric or alphabetical, click again to reverse), or remove blank rows.
  5. 05Toggle "Pretty output" to pad every column to the same width so the raw Markdown source lines up visually, or leave it off for the more compact default.
  6. 06Copy the Markdown from the output pane — it updates live as you edit the grid.

Frequently asked questions

Is there a limit on how big the table can be?

The grid supports up to 20 rows (including the header) and 10 columns, which comfortably covers typical README, documentation, and comparison tables.

Can I paste in data from Excel or Google Sheets?

Yes, two ways: paste a range directly into any grid cell and it fills in from that cell onward (growing the grid if needed, up to the 20x10 limit — a one-time "Undo" appears in case a paste overwrites more than you meant), or paste a full CSV/TSV export into the "Import CSV/TSV" box to replace the whole grid.

What's the difference between Compact and Pretty output?

Compact (the default) writes the tightest valid Markdown — single spaces around each cell. Pretty pads every column to its widest cell so the `|` characters line up visually in the raw source; both render identically once Markdown is processed. Your choice is remembered for next time.

Can I reorder rows and columns, or sort and transpose the data?

Yes — each row has ↑/↓ buttons and each column has ←/→ buttons (the header row always stays first). The "Data" menu adds Transpose (swap rows and columns), Sort by column (numeric or alphabetical, auto-detected; click the same column again to reverse), and Remove empty rows.

How does column alignment work in Markdown tables?

It's controlled by colons in the separator row under the header (see the syntax section below). This generator writes that separator row for you based on the alignment you pick per column.

Does it escape special characters like pipes?

Yes — a literal "|" inside a cell is automatically escaped to "\|" so it doesn't get mistaken for a column separator, and newlines inside a cell become "<br>".

Where can I use the Markdown this generates?

Anywhere that renders GitHub-Flavored Markdown: GitHub/GitLab READMEs, most static site generators, and this site's own Markdown Editor.

Related tools

Markdown table syntax

A Markdown table is built from three parts: a header row, a separator row that also controls alignment, and one or more data rows — each written as cells separated by | characters.

| Name  | Role      | Remote |
| ----- | :-------- | -----: |
| Ava   | Engineer  |    Yes |
| Priya | Designer  |     No |

The generator above writes this syntax for you automatically, including the correct separator row for whatever alignment you pick per column.