Markdown Table Generator — Excel to GitHub Without Pain
Spreadsheets are where comparison matrices are born. Markdown is where they go to live in PRs and docs. Between those worlds sits a ritual of hand-typing pipes until a cell containing Android | iOS detonates the entire table.
You do not need perfect monospace alignment for GitHub to render a table. You need correct structure: header row, separator row, consistent columns, and escaped pipes.
From Excel to Markdown without retyping
- Select the range in Excel or Google Sheets.
- Copy — you usually get TSV (tab-separated) on the clipboard.
- Paste into a Markdown table generator or a script that splits on tabs.
- Scan for
|inside cells and escape them as\|. - Paste the result into the README or Notion.
| Platform | Notes |
| --- | --- |
| Android \| iOS | Escaped pipe in cell |
| Web | Fine as-is |
Hand-aligning spaces so every column looks like a museum plaque is optional cosmetics. GFM ignores the pretty spaces. Spend effort on content, not ASCII art — unless your table must also be readable in raw git show for some reason.
GitHub vs Notion vs Jira
They all speak “pipe tables” with accents:
| Destination | Quirk |
|---|---|
| GitHub (GFM) | Strict column counts; HTML allowed sparingly |
| Notion | Paste often converts; editing wide tables in UI can be easier |
| Jira | Wiki/markdown modes differ by site config |
| Many static site gens | GFM tables via plugin |
“Same table syntax everywhere” is approximately true for simple grids and false for rowspan, markdown inside cells, or HTML. Keep cells plain text when you need maximum portability.
Structural rules that prevent broken renders
- One header row, then a separator like
| --- | --- |. - Same number of cells in every row (empty cells still need pipes).
- Leading and trailing pipes are conventional and clearer.
- Newlines inside a cell are not portable — split ideas across rows instead.
- Do not wrap the table in extra indentation or it may become a code block or nested list item.
Bad: | A | B
| 1 | 2 | 3 | ← column count drift
Good: | A | B | C |
| --- | --- | --- |
| 1 | 2 | 3 |
When a generator beats manual pipes
- More than five columns
- Frequent regenerations from a living spreadsheet
- Cells with commas, quotes, or pipes
- Non-technical contributors who should not learn GFM grammar
For one tiny 2×3 table, type it. For a 12-column API matrix that changes weekly, generate it.
Alignment and emphasis
GFM allows :---, ---:, and :---: for left/center/right. Useful for numeric columns. Bold inside cells works with **like this**. Nested tables do not. Links in cells work; images in cells get cramped fast.
FAQ
Must columns be space-aligned in the source?
No for GitHub rendering. Alignment is for human raw-view comfort only.
Why did Notion scramble my table?
Complex Markdown paste can be reinterpreted. Try pasting plain TSV into Notion’s table UI instead.
How do I include a pipe character?
Escape as \| in GFM source.
Generate from TSV, escape pipes, keep column counts honest. Markdown tables stop being painful the moment you stop treating them like handmade ASCII sculptures.