How to Make a Markdown Table in 60 Seconds
Three steps from blank document to working markdown table. The hand-typed path takes a minute. The paste-from-spreadsheet path takes ten seconds. Both produce identical output.
The 60-second hand-typed path
You've decided you need a table. The data is in your head or in a small list. The fastest way without a tool:
Step 1 — type the header row. Pipes around each column label, leading and trailing pipes for safety:
| Name | Role | Years |
Step 2 — type the separator row. Three or more dashes per column, between pipes:
| Name | Role | Years |
|------|------|-------|
Add colons if you want alignment. :--- for left, ---: for right, :---: for center.
Step 3 — type the data rows. Same pipe pattern as the header:
| Name | Role | Years |
|:------|:------------|------:|
| Alice | Engineer | 5 |
| Bob | Designer | 3 |
| Carol | PM | 7 |
Done. The table renders correctly in GitHub, GitLab, Notion, Obsidian, MkDocs, Docusaurus, Reddit, and Stack Overflow.
The 10-second paste path
Most tables exist somewhere already — usually in a spreadsheet. Use the data:
- In Excel or Google Sheets, select the range including headers. Copy.
- Open the Markdown Table tool.
- Click "Paste from spreadsheet."
- Click "Copy markdown."
The clipboard now has the markdown for the table. Paste anywhere it'll render. Total time: under ten seconds, with no hand-typing of pipes or counting of dashes.
Worked example — converting a real CSV
You have a CSV that looks like this:
Country,Capital,Population
France,Paris,67500000
Spain,Madrid,47600000
Italy,Rome,59600000
Open it in Excel or Sheets. Select the four rows including the header. Copy. Paste into the Markdown Table tool. The output:
| Country | Capital | Population |
|---------|---------|-----------:|
| France | Paris | 67,500,000 |
| Spain | Madrid | 47,600,000 |
| Italy | Rome | 59,600,000 |
Right-alignment on the Population column was inferred from the numeric content. Manually adjust by clicking the alignment chip if it's wrong.
The two mistakes that slow people down
Mistake 1: hand-aligning the pipes. Many writers spend a minute lining up the pipe characters in the source so the table looks neat. The renderer ignores this — |a|b| and | a | b | produce identical output. Skip the alignment unless you'll be reading the source code itself.
Mistake 2: forgetting the separator row. Without it, the renderer parses the block as paragraphs. The fix is a single line of dashes between the header and the data — the table immediately renders.
Templates to bookmark
Three common shapes you'll need most weeks. Copy these as starting points:
Three-column comparison. Two products, one column for the criterion:
| Criterion | Product A | Product B |
|:----------|:----------|:----------|
| | | |
Configuration reference. The standard docs pattern:
| Option | Type | Required | Default | Description |
|:-------|:-----|:--------:|:--------|:------------|
| | | | | |
Pricing or numbers. Right-aligned numeric columns:
| Item | Qty | Price | Total |
|:-----|----:|------:|------:|
| | | | |
For the deeper reference on syntax, alignment quirks, and platform-by-platform rendering differences, see The Complete Guide to Markdown Tables. For a printable cheatsheet, see Markdown Table Cheatsheet.
Frequently asked questions
How long should the dashes in the separator row be?
Any number of dashes — minimum three per column. |---| works the same as |----------|. Renderers ignore the count.
Do I need spaces inside the cells?
No. |a|b| and | a | b | render identically. Spaces are for source-code readability.
What's the fastest way to add a new row?
Copy the line above, paste it underneath, and edit the cells. The pipe boundaries already match the header — no counting required.
How do I add a row with empty cells?
Type the pipes with nothing between them: | | | |. Empty cells render as empty cells, not as missing data.
Can I use a markdown table tool inside VS Code?
Yes — the "Markdown Table" extension formats and aligns tables on save. For paste-from-Excel and one-click conversion, use the browser-based TextKit tool.
Keep reading
Written by the TextKit team. We build the tools we write about — try the Markdown Table tool used in this post.