Markdown tables use pipes (|) to separate columns and hyphens (-) to create the header separator row. The syntax is simple but tedious to type by hand — especially for tables with many columns or when you want to keep columns aligned.
Basic Markdown table syntax
| Name | Age | City |
| :---- | :-: | -------: |
| Alice | 30 | New York |
| Bob | 25 | London |
This produces:
| Name | Age | City |
|---|---|---|
| Alice | 30 | New York |
| Bob | 25 | London |
Column alignment syntax
The separator row controls alignment using colons:
| Syntax | Alignment |
|---|---|
:--- |
Left (default) |
:---: |
Center |
---: |
Right |
Rules and limitations
Standard Markdown tables have a few constraints:
- No merged cells: Unlike HTML tables, Markdown doesn't support colspan or rowspan
- No multi-line cells: Each cell must be on a single line
- Pipes must align (recommended for readability, but not required for parsing)
- At least 3 hyphens in each separator cell:
---,----,:---,---:,:---:
Where Markdown tables are used
- GitHub README files: Markdown is the native format for GitHub documentation
- Notion: Supports Markdown table paste
- Documentation sites: Docusaurus, GitBook, MkDocs all render Markdown tables
- Blog posts: Many static site generators (Hugo, Jekyll, Next.js with MDX) support Markdown tables
- Slack and Discord: Both support basic Markdown, though table support varies
Importing from CSV and Excel
One of the most common workflows is converting spreadsheet data to a Markdown table. Most tools let you paste tab-separated values (TSV) directly from Excel or Google Sheets — just copy cells and paste.
For CSV files, the format is:
Name,Age,City
Alice,30,New York
Bob,25,London
The Markdown Table Generator auto-detects whether your pasted data is comma-separated (CSV) or tab-separated (from Excel/Google Sheets) and converts it accordingly.
Generating HTML from a Markdown table
Sometimes you need the HTML equivalent of a Markdown table — for embedding in HTML files, email templates, or CMS systems that don't support Markdown. The HTML output for the example above would be:
<table>
<thead>
<tr>
<th style="text-align: left">Name</th>
<th style="text-align: center">Age</th>
<th style="text-align: right">City</th>
</tr>
</thead>
<tbody>
<tr>
<td>Alice</td>
<td>30</td>
<td>New York</td>
</tr>
</tbody>
</table>
Tips for readable Markdown tables
Pad columns with spaces so values align visually in the raw Markdown:
| Name | Role | Department |
| :--------- | :-------------- | :--------- |
| Alice Chen | Senior Engineer | Platform |
| Bob Smith | Product Manager | Growth |
This isn't required for rendering but makes the raw file much easier to read and edit in a text editor.
Use right-alignment for numbers — it makes numeric columns easier to compare at a glance.
Keep descriptions concise — long text in a table cell wraps awkwardly in most renderers.
How to create a Markdown table for free
- Go to Markdown Table Generator
- Click cells to edit, or use Tab to move between cells and Enter to move down
- Click the alignment icon on each column header to cycle Left → Center → Right
- Use Import CSV to paste comma-separated or tab-separated data from Excel
- Copy the Markdown output with one click, or copy HTML if needed
- Download as
.md,.csv, or.htmlfor offline use
The tool supports up to 20 columns and 100 rows. Quick-start presets (Comparison, Pricing, Changelog, Schedule) let you begin with a realistic structure in one click.