Skip to main content

Free Markdown Table Generator: Visual Editor + CSV Paste

Build GitHub-flavoured Markdown tables in a spreadsheet-style editor with per-column alignment and one-click paste from Excel, Google Sheets, or CSV. Pipes are escaped automatically. Free and 100% client-side.

Left :--- Center :---: Right ---:

Spreadsheet-Style Editor

Click any cell to edit. Add rows and columns with one button. Drag to reorder. The grid stays in sync with the Markdown source — no parse/serialize round-trips lose your data.

Per-Column Alignment

Left, center, or right per column — encoded via the colon markers GitHub, GitLab, Bitbucket, and every Markdown processor accept. Switch alignment without retyping the table.

Paste from Anywhere

Copy a range from Excel, Google Sheets, Numbers, or a CSV file — we auto-detect tab / comma / pipe / semicolon delimiters and import the rows directly. No copy-paste-and-re-edit loop.

100% Client-Side

Internal product roadmaps, financial breakdowns, customer data tables — every cell stays on your device. We render the Markdown in your browser, no network round-trip.

Markdown Table Generator: Build GFM Tables Without Typing Pipes

A Markdown table generator turns a spreadsheet-style grid into GitHub-flavoured Markdown (GFM) source. Type cells or paste from Excel, set per-column alignment, and copy a properly escaped | pipe | table. It auto-escapes literal pipes, converts newlines to <br>, and outputs pretty-padded or compact source. It runs 100% in your browser, free, with no upload.

How to make a Markdown table

  1. Edit the grid directly, or click Paste from Spreadsheet and paste a copied range from Excel, Google Sheets, or a CSV file.
  2. Add or remove columns and rows with the toolbar buttons — the grid stays rectangular, so a new column adds an empty cell to every row.
  3. Click the alignment control above each column to cycle left → center → right; it rewrites the delimiter-row colon markers for you.
  4. Pick an output style: Pretty pads columns for readable source, Compact uses single-space padding for the smallest byte count.
  5. Press Copy to send the GFM source to your clipboard, then paste it into a README, pull request, issue, or docs page.

What is GFM table syntax and how does it work?

Markdown tables are not part of core Markdown. They are a GitHub-flavoured Markdown extension defined in section 4.10 of the GFM spec. A table has three parts: a header row, a delimiter row, and zero or more body rows. Cells are separated by pipes (|), and a leading and trailing pipe is recommended for clarity. The delimiter row sets alignment: per the spec, it "consists of cells whose only content are hyphens (-), and optionally, a leading or trailing colon (:), or both."

| Column 1 | Column 2 | Column 3 |
|:---------|:--------:|---------:|
| left     |  center  |    right |
| a        |    b     |        c |

Two spec rules trip people up. First, the header row must match the delimiter row in the number of cells — if it does not, "a table will not be recognized" and the whole block renders as plain text. Second, only inline content is allowed: per the spec, "block-level elements cannot be inserted in a table." That means no lists, headings, or fenced code blocks inside a cell — just **bold**, `code`, links, and <br> line breaks.

Worked examples: input → output

Right-aligned number column · pretty style

| Item   | Price |
|:-------|------:|
| Coffee |  3.50 |
| Bagel  |  2.25 |

Centered status column · compact style

| Task | Status |
| --- | :---: |
| Build | done |
| Ship | wip |

Edge case · a literal pipe inside a cell

Typing a | b in a cell would split the column. This tool escapes it to a \| b on output, so the cell stays intact. Type the pipe normally — do not pre-escape it yourself, or you will get a double backslash a \\| b.

Alignment marker reference

Alignment lives entirely in the delimiter row. The number of dashes is cosmetic — the spec requires only one or more hyphens per cell — what matters is where the colons sit.

AlignmentDelimiter markerColon placementBest for
Left:---Leading colon (or no colon)Labels, names, descriptions
Center:---:Leading and trailing colonStatus, checkmarks, badges
Right---:Trailing colonNumbers, prices, totals

Markdown table vs HTML table vs CSV

FormatBest forLimitations
Markdown tableREADMEs, PR descriptions, issue templates, Notion docsNo row/col spans, no styling, rectangular only
HTML <table>Complex layouts, spans, styling, accessibility-critical docsVerbose, breaks plain-text readability
CSV / TSVBulk data, importable to spreadsheets, machine-to-machineNot human-readable inline, requires a renderer

Two paste quirks worth knowing

When you paste, the delimiter detector samples only the first 200 characters and picks the most frequent of tab, comma, pipe, or semicolon — tab wins ties first, then comma. So a CSV whose first two columns are short but whose later rows contain many commas can still misread if those commas fall outside the sample. Fix: copy a clean range, or export to a single consistent delimiter before pasting.

The escape order also matters. Cells are escaped backslash-first (\\\), then pipe (|\|), then newlines to <br>. That ordering is why you should never pre-escape pipes yourself — the tool would double the backslash. In pretty mode every column is padded to at least three characters so the delimiter row always keeps room for its colon markers, even for one-letter headers.

Runs 100% in your browser

Your data never leaves your device. Building the grid, escaping pipes, computing column widths, and parsing pasted CSV all happen locally in JavaScript — no uploads, nothing leaves your device. Internal product roadmaps, financial breakdowns, and customer data tables stay on your machine. I tested paste import from Excel (tab-separated), Google Sheets, and raw CSV, plus cells containing literal pipes, embedded newlines, and quoted fields with commas, in both pretty and compact output.

Frequently asked questions

Is this Markdown table generator free?

Yes — 100% free with no signup and no usage cap. It runs entirely in your browser, so there is nothing to install and no account to create. Build, paste, and copy unlimited tables.

How do I encode column alignment?

Colons in the delimiter row control it: :--- is left, :---: is center, and ---: is right. Click the alignment control above a column to cycle through the three options — the tool rewrites the markers so you never edit dashes by hand.

How do I put a line break inside a cell?

Use an HTML <br> tag — GFM cells cannot span multiple physical lines of source. This editor accepts multi-line input and converts each newline to <br>automatically so the rendered table looks right.

Why does my pasted table look broken?

Usually the delimiter was misdetected, the source had merged cells (Markdown tables are strictly rectangular), or a cell held an unescaped pipe. Export your sheet to a single clean delimiter, unmerge cells first, and let the tool handle pipe escaping.

Does it support row spanning or nested lists in cells?

No — the GFM spec states "block-level elements cannot be inserted in a table," and there is no row or column spanning. For complex layouts, embed a raw HTML <table>instead. Inline Markdown like bold, links, and inline code does work inside cells.

Last updated: June 2, 2026 · Runs 100% in your browser — no uploads, nothing leaves your device.

Need a different tool?

Browse all 89 free, in-browser tools — or tell us what we should build next.

Browse all tools