📊 Markdown Table Generator & Spreadsheet
Create and format Markdown tables using a visual spreadsheet editor. Add rows, columns, adjust text alignment (left, center, right), and copy clean markdown.
| Head | |||
| Region | Revenue | Change | | :--- | ---: | ---: | | North | $1,240 | +8% | | South | $980 | −3% |
Pipes in your text are escaped to \| and line breaks become <br>, because both would otherwise end a cell and silently misalign the row. Tables are a GitHub Flavored Markdown extension, not part of the CommonMark core, so they render on GitHub, GitLab and most static site generators but not everywhere.
What Markdown Table Generator & Spreadsheet Does
Markdown tables are a pipe-delimited grid: a header row, a delimiter row that also carries the column alignment, and then the body. They are easy to read and painful to write by hand, because every row has to have the same number of pipes and nothing lines up while you are typing.
The delimiter row is the part people forget. It is mandatory — without it the block is not a table, it is a paragraph containing pipes — and it is where alignment lives. Three hyphens is default alignment, a leading colon is left, a trailing colon is right, and colons at both ends is centered.
Two things break a hand-written table, and both are silent. A pipe inside a cell ends the cell early, so "Revenue | Net" becomes two columns and the row stops matching the header. A line break inside a cell ends the row. This generator escapes the first and converts the second to a <br>, so pasted content behaves.
The fastest way to use it is to paste. Copying a range out of Excel, Numbers or Google Sheets puts tab-separated text on the clipboard, so the whole table arrives in one go rather than being retyped cell by cell.
How to Use Markdown Table Generator & Spreadsheet
- Type text into the visual spreadsheet cells
- Add rows and columns as needed and choose column alignment
- Click Copy Table Markdown to paste into GitHub, documentation, or README files
Formula Used by Markdown Table Generator & Spreadsheet
The shape of a Markdown table
| Header | Header |\n| :--- | ---: |\n| cell | cell |
- :---
- left aligned
- :---:
- centered
- ---:
- right aligned
- ---
- default, which renderers treat as left
Worked example
A cell containing the text "Total | Net".
- Written literally, the pipe is read as a column separator
- The row gains a column, stops matching the header, and the table misaligns
- Escaped as Total \| Net, the pipe stays in the cell
Result: One cell reading "Total | Net", and a table that still lines up.
Where tables render
Tables are a GitHub Flavored Markdown extension, not part of the CommonMark core.
| Destination | Support |
|---|---|
| GitHub, GitLab, Bitbucket | Yes |
| Most static site generators | Yes, usually via a GFM-compatible parser |
| Obsidian, Notion, Slack canvases | Yes |
| Strict CommonMark renderers | No — the pipes appear literally |
| Plain-text email | No, though a monospace font keeps it readable |
What has to be escaped
| Character | Why | Written as |
|---|---|---|
| | | Ends the cell | \| |
| Line break | Ends the row | <br> |
| \ | Would escape the following character | \\ |
How to Read Your Result
The source does not need to line up
Renderers do not care about column widths in the source, so padding cells with spaces is purely for humans reading the raw file. Compact output is equally valid and much easier to edit.
Alignment is per column, not per table
The usual reason to set alignment at all is a numeric column that should be right-aligned while the labels stay left. Setting one alignment for the whole table defeats the point.
Markdown tables cannot merge cells
There is no rowspan or colspan. If your table genuinely needs merged cells, nested tables or block content inside a cell, use HTML — most Markdown renderers pass raw HTML tables through.
Limitations & Accuracy Notes
- No merged cells, nested tables, or multi-line block content inside a cell.
- Tables are a GFM extension and will not render in strict CommonMark.
- The first row is always the header; Markdown has no headerless table.
- Line breaks inside cells become <br>, which renders in HTML-permitting renderers and appears literally in those that strip HTML.
- CSV parsing handles quoted fields and embedded commas, but not exotic dialects with unusual delimiters or escape characters.
Frequently Asked Questions
How does Markdown table text alignment work?
Can I add or remove rows and columns dynamically?
How do I set column alignment?
Do the pipes need to line up?
How do I put a pipe character inside a cell?
Can a cell contain a line break?
Are tables standard Markdown?
Is my data sent anywhere?
References & Further Reading
- GitHub Flavored Markdown — tables — The specification for the delimiter row, alignment colons and pipe escaping used here