Home / Tools / Markdown Table Generator
Free tool · runs in your browser

Markdown Table Generator

Paste CSV or tab-separated data and get a properly aligned Markdown table. Columns are padded so the source is readable in a plain-text editor, pipes inside cells are escaped, and alignment markers are set for you.

How it works

The anatomy of a Markdown table

A pipe table needs three things: a header row, a separator row of dashes, and body rows. The separator row is what makes it a table — without it the pipes render as literal text, which is the single most common reason a table doesn't appear.

The separator also carries alignment: :--- left, :---: centre, ---: right, and plain --- leaves it to the renderer.

Why padding is worth it

Markdown doesn't care whether columns line up — |a|b| renders identically to a neatly padded row. But the source is read by people, in diffs and in editors, and an unpadded table is genuinely hard to scan. Padding every cell to its column's widest value costs nothing at render time and makes the raw file readable.

Turn padding off if you are generating a very wide table where the added spaces would push lines past a line-length limit.

What cells cannot contain

A pipe character inside a cell ends the cell, so literal pipes must be escaped as \| — this tool does that for you. Cells support inline formatting (bold, italic, links, inline code) but not block elements: no lists, no fenced code blocks, no paragraphs. A line break inside a cell needs a literal <br>, since a newline would end the row.

What people use it for

  • Putting a spreadsheet extract into a README or a docs page.
  • Turning query results into a table for a pull request or an issue comment.
  • Building a comparison table without counting pipes by hand.
  • Converting a CSV export into documentation.
  • Fixing an existing table whose columns have drifted out of alignment — paste it back through.

Nothing is uploaded. This tool runs entirely in JavaScript in your browser. Your input is never sent to a server, never logged and never stored, and no account is required. Once the page has loaded you can go offline and it still works — open your browser's network tab and watch if you'd like to confirm it.

Frequently asked questions

Why isn't my table rendering?

Almost always a missing or malformed separator row. A pipe table needs a row of dashes between the header and the body; without it, the pipes render as literal text.

How do I set column alignment?

Through the separator row: :--- left, :---: centre, ---: right. Choose an alignment in the options and the tool writes the markers for you.

Can a cell contain a list or a code block?

No. Table cells support inline formatting only — bold, italic, links, inline code. For a line break inside a cell use a literal
tag, since a newline would end the row.

What happens to pipe characters in my data?

They are escaped as \| automatically, because an unescaped pipe would end the cell and break the row.

Does padding change how the table renders?

No. Padding only affects the readability of the Markdown source. The rendered output is identical either way.

Tools that run where your code is

This page does its work in your browser because sending your data to a server to process it is a bad default. Catalase applies the same idea to AI coding: a free, open-source code editor that runs language models on your own machine through Ollama, with no account and no telemetry. Cloud models are there when you choose one, not by default.

Download Catalase freeWhat is Catalase?

Related tools

All 30 free developer tools →