Markdown Table Formatter
Paste a messy Markdown table and get it back with aligned pipes, even padding and consistent delimiter rows.
Paste cells from Excel or Google Sheets into the first header to replace the table · Tab / Enter / arrows move · Shift+F10 opens row & column actions
How to format a Markdown table in 3 steps
Paste the messy table
Press Ctrl+V (⌘V) anywhere on the page outside a text box, or open the Markdown tab and paste over the source. The output on the right is already re-padded.
Adjust style and alignment
Pick Padded, Compact or No outer pipes under the output. Click Auto-align to right-align numbers, or open Options to wrap long cells with <br> and change header case.
Copy the formatted table
Click Copy Markdown and paste it back into your file. For a chat message or terminal, use Options › Copy Unicode Box and send it in a code block.
Example
|ID|Task|Owner|Budget|Status| |-|-|-|-|-| |DEV-101|OAuth PKCE flow|Alice|$4,500.00|🟢 Active| | DEV-102 |Edge cache|Bob| $12,850.50|🟡 Review| |DEV-103|Index tuning |Charlie|$3,200.00|🔴 Blocked|
| ID | Task | Owner | Budget | Status | | :------ | :-------------- | :------ | ---------: | :--------- | | DEV-101 | OAuth PKCE flow | Alice | $4,500.00 | 🟢 Active | | DEV-102 | Edge cache | Bob | $12,850.50 | 🟡 Review | | DEV-103 | Index tuning | Charlie | $3,200.00 | 🔴 Blocked |
Options explained
- Format
- Rewrites the table in the chosen style and applies the wrap setting from Options. The output is padded even without it; use Format after changing wrap or style.
- Auto-align
- Sets every column’s alignment from its content: columns that are at least 75% numbers, currency or percentages go right; columns of yes/no, true/false, ✓/✕ and similar status values go center; everything else goes left.
- Spacing (under the output)
- How the Markdown source is laid out. All three render identically; Padded is easiest to read and review in diffs.Padded (default) · Compact · No outer pipes
- Output style (Options)
- The same three Markdown styles plus two plain-text box styles for terminals and chat. Box styles are not Markdown tables and will not render as tables on GitHub.Padded · No outer pipes · Compact · Unicode box (┌─┬─┐) · ASCII box (+---+)
- Copy Unicode Box
- Copies the table drawn with box characters, for Discord, Slack, terminals or code comments. Paste it inside a ``` code block so the columns stay aligned.
- Line breaks as <br>
- Wraps long cell text at word boundaries with <br>, so very wide columns become narrower when rendered. Applied when you click Format or pick a style.Wrap width: 30, 40 (default), 50 or 60 characters
- Emoji Monospace Width
- Counts emoji and CJK characters as two columns wide when padding, so pipes line up in editors that draw them double-width. Turn it off if your editor shows them single-width.On by default
- Header case
- Changes all header names at once. Title Case capitalizes only all-lowercase words (don’t becomes Don’t; iPhone and SKU are kept) and leaves small words such as of and the lowercase in the middle.Title Case · UPPERCASE · lowercase
- Column alignment pills
- Click a column’s pill to cycle its alignment.Left (:---) → Center (:---:) → Right (---:) → Default (---)
- Flavor
- GFM for GitHub, GitLab, Obsidian and most tools; reStructuredText and Org-mode write those formats’ table syntax instead.GFM (default) · MultiMarkdown · Pandoc Pipe · reStructuredText · Org-mode
Related tools
Also useful
Next steps
- Markdown Table ValidatorFind broken delimiter rows, column mismatches and unescaped pipes.
- Markdown Table SorterSort rows alphabetically or numerically by any column.
- Markdown Table TransposeSwap rows and columns.
- Markdown Table EditorPaste an existing Markdown table and edit cells visually.
- Markdown Table to ImageRender the table as a PNG or SVG for slides and posts.
Convert Markdown to…
- Markdown Table to CSVExport a Markdown table as RFC 4180 CSV.
- Markdown Table to TSVCopy as tab-separated values that paste cleanly into Excel and Sheets.
- Markdown Table to HTMLExport semantic <table> markup.
- Markdown Table to JSONExport rows as an array of JSON objects.
- Markdown Table to LaTeXExport LaTeX tabular code for papers and Overleaf.
Convert to Markdown from…
- CSV to Markdown TableConvert CSV text or .csv files, including quoted cells.
- Excel to Markdown TablePaste cells copied from Excel straight into a Markdown table.
- Google Sheets to Markdown TablePaste a copied range or a public sheet URL.
- TSV to Markdown TableConvert tab-separated text into a Markdown table.
- HTML Table to MarkdownConvert <table> markup into a Markdown table.
About this tool
A table typed by hand or edited a few times ends up with uneven spacing and pipes that no longer line up, which makes the source hard to read and every later edit a noisy diff. Paste it here and the formatter pads each column to its widest cell, stretches the delimiter row to match, makes outer pipes consistent and escapes stray pipes. It counts emoji and CJK characters as double width so columns stay straight in a monospace editor.
- Aligns pipes and pads every column to the widest cell
- Counts emoji and CJK characters as double width
- Padded, compact or no-outer-pipes Markdown styles
- Unicode and ASCII box tables for chat and terminals
- Auto-align numbers right and status columns center
- Wraps long cells with <br> at 30–60 characters
- Normalizes delimiter rows and escapes stray pipes
Technical details
What formatting changes, and what it never changes
Formatting only changes whitespace and the length of the delimiter dashes. Renderers ignore the padding, so a formatted table looks exactly the same on GitHub; the benefit is a source that is readable in an editor and produces clean line-by-line diffs.
- Column width: Each column is padded to its widest cell (minimum three characters), and the delimiter row is stretched to match.
- Alignment colons: :---, :---: and ---: are kept, and padding follows them, so right-aligned columns are right-padded in the source too.
- Ragged rows: Missing cells are added as empty cells, and outer pipes are made consistent on every line.
- Pipes: Unescaped | inside cell text is written as \| so it cannot split the cell.
- Content: Cell text is not changed unless you turn on <br> wrapping or change header case.
Common problems and fixes
Pipes still look crooked in my editor
Cause: The editor uses a proportional font, or it draws emoji at a different width than two columns.
Fix: Switch to a monospace font. If emoji are the problem, toggle Emoji Monospace Width and copy again.
One column is huge
Cause: A long URL or sentence sets the width for the whole column.
Fix: Use a Markdown link with short text ([docs](https://…)), or turn on Line breaks as <br> to wrap long text.
The box table shows as plain text on GitHub
Cause: Unicode and ASCII box styles are plain text, not Markdown table syntax.
Fix: Use Padded, Compact or No outer pipes for anything that should render as a table; keep box styles for code blocks and chat.
Platform compatibility
| Platform | Support | Notes |
|---|---|---|
| GitHub, GitLab, Obsidian | Supported | Padded, Compact and No outer pipes all render the same table. |
| Prettier | Supported | Prettier also aligns Markdown tables, so the Padded output and Prettier can maintain the same file. |
| markdownlint | Supported | Consistent outer pipes and column counts satisfy MD055 and MD056. |
Frequently asked questions
How do I format a Markdown table?
Paste the table on this page (Ctrl+V or ⌘V outside a text box) and copy the output: every column is padded to its widest cell and the pipes line up. You can also paste into the Markdown tab. Nothing about the rendered table changes, only the source layout.
Does formatting change how the table looks on GitHub?
No. Renderers ignore the extra spaces, so a padded, compact or no-outer-pipes table renders identically. Formatting is for people reading the raw file and for cleaner diffs in pull requests.
Why are my pipes still crooked when the table has emoji?
Most monospace editors draw emoji and CJK characters two columns wide, so a plain character count misaligns them. The formatter counts them as double width by default; if your editor draws them single-width, turn off Emoji Monospace Width in Options.
How do I right-align numbers in a Markdown table?
Click Auto-align: columns that are mostly numbers, currency or percentages become right-aligned (---:). To set one column yourself, click its pill under Options or use the ▾ menu on the column header in the grid.
What is the “no outer pipes” style?
It omits the leading and trailing | on each line (Name | Role instead of | Name | Role |). GFM accepts both forms and renders them the same; some teams prefer it because the lines are shorter.
How do I post a table in Discord or Slack?
Chat messages do not render Markdown tables. Use Options › Copy Unicode Box and paste it between ``` fences so it shows as an aligned text table in a code block. Slack’s Block Kit has a table block, but it is only available to apps through the API, not in typed messages.
How do I shorten a very wide column?
Turn on Line breaks as <br> in Options and pick a wrap width; long text is split at word boundaries with <br>, which GitHub renders as line breaks inside the cell. For long URLs, use link text: [docs](https://example.com/very/long/path).
Is my table sent anywhere?
No. Formatting runs in your browser and the table is not uploaded. A draft is kept in this browser’s local storage so a reload does not lose it.