Markdown Table Generator
Edit cells like a spreadsheet, set the alignment for each column, and copy a perfectly padded Markdown table. No more counting pipes and dashes by hand.
How Markdown tables work
A GitHub-Flavored Markdown table is a header row, a separator row of hyphens, and then one line per row, with cells divided by pipes. The separator row also carries alignment: a colon on the left of the hyphens aligns that column left, on the right aligns it right, and on both sides centres it.
| Tool | Runs in | Cost |
|:--------------|:-------:|-----:|
| Diff checker | browser | 0 |
| Token counter | browser | 0 |The syntax is simple; maintaining it is not. Every time a cell changes width you re-pad the whole column so the source stays readable, and a single missing pipe silently swallows a column. The generator keeps a grid you edit like a spreadsheet and rewrites the Markdown for you on every change.
Editing the grid
Click any cell and type. Hover or focus a cell and open the chevron menu to set that column's alignment (left for text, right for numbers, centre for short labels), insert or delete a row or column, or clear the cell. The Rows and Columns steppers in the toolbar still resize the whole grid. The header row is always the first row of the grid, so put your column names there. The output pane updates as you type and is already padded so the columns line up in the raw Markdown, not only when rendered.
It is all free and there is no signup. The grid runs in your browser, so the contents of your table are never uploaded or stored anywhere.
Undo and redo
Deleting a row or column, adding one, clearing the grid, importing a file, changing alignment, and editing the Markdown pane all go through the same history. The shortcuts work while a cell is focused. They step aside only while that cell still has typing you have not left yet, so the browser can undo those keystrokes first.
- Undo: Ctrl+Z, or Cmd+Z on a Mac.
- Redo: Ctrl+Shift+Z, Cmd+Shift+Z, or Ctrl+Y.
The Actions menu in the toolbar lists the same commands, along with Import CSV and Generate.
Starting from a spreadsheet or CSV
Most tables already exist somewhere else. Select a range in Excel, Google Sheets, or Numbers, copy it, and paste into the grid: the tab characters between cells become columns and each line becomes a row. CSV files can be imported directly, including quoted fields that contain commas.
Region Orders Revenue
EMEA 1,204 $48,120
APAC 987 $39,410| Region | Orders | Revenue |
|:-------|-------:|--------:|
| EMEA | 1,204 | $48,120 |
| APAC | 987 | $39,410 |A useful habit for reports: keep the numbers in the spreadsheet, paste into the generator, set the numeric columns to right-aligned, and copy the result into the README or pull request description.
Pipes and other special characters
A literal | inside a cell would start a new column, so the generator escapes it as \|. That matters for tables of shell commands, regular expressions, and TypeScript union types. Inline code, bold, links, and images all work inside cells because they are ordinary inline Markdown; what does not work is anything block-level. A cell cannot contain a list, a code fence, or a line break, which brings us to the limits.
Editing an existing table
Paste a Markdown table into any cell and the generator recognises it, rebuilding the grid, the header, and the per-column alignment from the separator row. You can also edit the Markdown in the output pane: a valid table updates the grid, and an invalid one shows an error and leaves the grid as it was. That turns a five-minute chore of adding one column to a hand-written table into a paste, an edit, and a copy. It is also the quickest way to re-pad a table someone else left ragged.
What Markdown tables cannot do
- Merged cells and column spans. If you need them, the table has to be HTML; write it in Markdown here, convert it with Markdown to HTML, and add the
colspanby hand. - Multi-line cells. Some renderers accept
<br>inside a cell; GitHub does, many others do not. - Column widths. Rendered width is decided by the content and the stylesheet, not by the padding in the source.
Within those limits the output renders on GitHub, GitLab, Bitbucket, Notion, Obsidian, Confluence with the Markdown macro, and every common static site generator.
FAQ
Does the table generator run in my browser?
Yes. Everything runs in your browser, so the content of your table is never uploaded or stored anywhere.
Will the table render on GitHub?
Yes. The output is GitHub-Flavored Markdown, which also works in GitLab, Notion, Obsidian, and most static site generators.
What about cells containing a pipe character?
Pipes are escaped as \| so they stay inside the cell instead of creating a new column.
Can I convert an existing Markdown table back into the editor?
Yes. Paste a GFM table into any cell and the grid, header, and per-column alignment are restored. CSV files can be imported the same way.