Markdown Table Generator & Editor
Build a Markdown table in a spreadsheet-like editor with per-column alignment, or paste an existing table to edit it.
| Remove | |||
|---|---|---|---|
Markdown output
| Name | Role | Years | | ------------ | ------------- | ----: | | Ada Lovelace | Mathematician | 36 | | Grace Hopper | Rear Admiral | 85 |
Import an existing Markdown table
About this tool
How to use it
- Type directly into the grid — click any cell to edit it, just like a spreadsheet.
- Click a column's alignment button (Left/Center/Right) to cycle its alignment; this changes the Markdown separator row (---, :---:, or ---:).
- Use Add row / Add column to grow the table, or the ✕ buttons to remove a specific row or column.
- Copy the generated Markdown from the output box below — it updates live as you edit.
- To edit an existing table instead of starting fresh, paste it into the Import box and click Load into editor.
Why it matters
Hand-typing a Markdown table's pipes and dashes is fiddly and easy to misalign, especially once you need to add a column in the middle or change alignment after the fact — every column's separator and every row's cell count has to stay in sync by hand. Editing it as a real grid removes that bookkeeping.
When to use it
Writing a README, a GitHub issue, a wiki page, or any other place that renders GitHub-flavored Markdown and needs a clean table. Converting a small dataset or comparison into a table without opening a spreadsheet app. Reformatting or extending a table someone else already wrote in Markdown.
Good to know
Output is standard GitHub-flavored Markdown (GFM) table syntax. Cells are padded with spaces so the pipe characters visually line up in a plain-text editor — this is purely cosmetic and has no effect on how any Markdown renderer displays the table, since renderers ignore the extra whitespace. A literal pipe character (|) typed into a cell is automatically escaped (\|) so it doesn't break the table structure, and newlines inside a cell are collapsed to a single space, since Markdown table cells cannot span multiple lines.
Common questions
Does the visual pipe alignment in the output actually matter?
No — it's purely for readability in a plain-text editor or diff view. Every Markdown renderer (GitHub, GitLab, most static site generators) ignores the extra spacing and renders the table identically whether the pipes line up or not.
What happens if I type a | character into a cell?
It's automatically escaped as \| in the output, since an unescaped pipe would be read as a new column boundary and break the table. You'll see the escaped version in the Markdown output, but it still displays as a plain | character when the Markdown is rendered.
Can a cell contain multiple lines?
No — Markdown's table syntax is line-based, so a newline inside a cell is automatically collapsed to a single space. For multi-line content within a table cell, most Markdown flavors support an HTML `<br>` tag typed directly into the cell instead.
Why does importing my table fail?
The importer expects standard GFM syntax: a header row, then a separator row made only of dashes and colons (e.g. |---|:---:|---:|). If the second row isn't a valid separator, or there are fewer than 2 rows total, it reports exactly which requirement wasn't met rather than guessing.
Is my table data sent anywhere?
No. Building, editing, and importing all happen in plain JavaScript in your browser tab — nothing you type is uploaded, logged, or stored.