Markdown Table Generator

Build a GitHub-Flavored Markdown table in a visual grid — add rows and columns, set per-column alignment, with automatic pipe-character escaping.

Selected: row 1, column 1

Press Enter inside a cell for a line break — it becomes <br> in the table.

Paste cells copied from a spreadsheet, or a whole Markdown table, into any cell and they fill the grid from there.

In a cell, Ctrl/⌘+B makes the selection bold, Ctrl/⌘+I italic and Ctrl/⌘+K a link. The arrow keys move to the next cell once the caret reaches the edge of this one.

| Column 1 | Column 2 | Column 3 |
| :------- | :------- | :------- |
|          |          |          |
|          |          |          |
Result: 4 lines, 139 charactersPreview
Column 1Column 2Column 3

You can also drop a .md, .csv, .tsv or .txt file onto this box, or open one.

Build a Markdown table without counting pipes

Fill in a visual grid — add or remove columns and rows, type your headers and cell values, and set each column's alignment — and the matching GitHub-Flavored Markdown table is written for you in real time. Pipe characters inside a cell are escaped automatically, line breaks become <br>, and every column is padded to an even width so the raw Markdown stays readable in your source, not only when rendered — or tick “Compact — no padding” for the shortest table GFM reads. Paste cells copied from a spreadsheet into any cell and they fill the grid from there, or load an existing table back in to edit it — a Markdown table, or comma-, semicolon- or tab-separated text, pasted, opened from a file or dropped onto the box; Undo and Redo step back through every change, Transpose swaps rows for columns, and a Preview under the source shows the table the way a renderer draws it. The grid holds up to 100 rows and cuts a longer import there, so for a bigger CSV use CSV to Markdown Table, which converts the whole file at once.

Where the output works

Output format writes the same grid as HTML, LaTeX or CSV instead, and Copy and Download follow it; the Markdown it produces is standard GFM table syntax, so it renders on GitHub and GitLab, in README files and issue comments, in Obsidian and Notion, and in most static-site generators and chat tools that support Markdown. Pick left, center or right alignment per column to control how each one renders. For Markdown, “Bold first column” and “Number the rows” bold the first column’s cells and add a # column to the output without touching the grid. Everything runs in your browser — nothing you type is uploaded. Tick “Keep this table” and the grid is also saved in this browser as you type and comes back on your next visit; untick it and the saved copy is deleted.

Frequently asked questions

How do I add or remove columns and rows?

Use the Add column and Add row buttons to grow the grid, and the × button on each column header or row to remove it. The table always keeps at least one column and one row. To add one in the middle, click a cell and use Insert row above / below or Insert column left / right, and the Move buttons beside them reorder it.

What happens to a pipe character in a cell?

A literal | would end the table cell, so it is automatically escaped as \| in the generated Markdown, where it renders as a normal pipe character.

Can I set column alignment?

Yes. Each column has a Left / Center / Right selector that writes the :--, :-: or --: marker into the separator row, which controls how that column is aligned when the table is rendered.

Will this work on GitHub?

Yes. The output is GitHub-Flavored Markdown (GFM) table syntax, which also works on GitLab, Obsidian, Notion and most Markdown editors and chat tools.

Can I paste from a spreadsheet, or edit a table I already have?

Yes. Copy cells in a spreadsheet and paste them into any cell: tabs and line breaks become columns and rows, filling the grid from that cell and growing it as needed, with a note if some did not fit. To edit an existing Markdown table, paste it into Markdown table to edit and press Load into grid — or paste the whole table straight into a cell.

Can it sort or clean up the rows, write HTML or LaTeX, or keep my table for next time?

Yes. With a cell selected, “Sort rows A → Z by this column” and “Sort rows Z → A by this column” order the rows — numbers by value, blanks last — and “Remove duplicate rows” and “Remove empty rows” tidy the body; “Find in every cell”, “Replace with” and “Replace all” change text in every header and cell and say how many places changed. Each of these is one Undo step. Output format writes the same grid as Markdown, HTML, LaTeX or CSV, and Copy and Download follow it. “Keep this table” is off until you tick it: then the grid is saved in this browser as you type and comes back on your next visit, and unticking it deletes the saved copy.

Are there keyboard shortcuts for formatting a cell or moving between cells?

Yes. In any cell, header included, Ctrl/⌘+B wraps the selected text in ** for bold and Ctrl/⌘+I in * for italic — press it again on a wrapped selection to take the marks off — and Ctrl/⌘+K writes [text](https://) with the address selected, ready to type over. An arrow key moves to the neighbouring cell once the caret is at that edge of the text: Up on the first line, Down on the last, Left at the start, Right at the end. The page repeats this under the grid.