CSV to Markdown Table

Turn CSV into a GitHub-flavoured Markdown table, with pipes escaped, newlines handled and columns aligned.

Conversion happens entirely in your browser. Nothing you paste is uploaded, which makes this safe for data you would not put into an online converter.

What It Does

Paste a CSV and get a Markdown table you can drop straight into a README, a pull request or a documentation page. The conversion looks trivial and mostly is, except for the two details that make hand-written tables come out broken. A pipe character inside a cell ends the column unless it is escaped, so a value like "pass | fail" silently splits the row and shifts every column after it. And a genuine line break inside a cell cannot exist at all, because a table row must occupy one line — so it becomes a br tag instead. Beyond that the tool pads the columns so the raw source is readable, lets you set per-column alignment, and reads the CSV with a real parser so quoted fields containing commas survive intact.

When to Use It

  • A spreadsheet of configuration options or API parameters needs to go into a README as a table.
  • You are writing release notes and want a table of changes from data you already have in CSV.
  • A support ticket needs data presented readably and the system accepts Markdown.
  • You are documenting a schema and the field list already exists as an export.
  • A wiki page needs a table and retyping thirty rows by hand is not a reasonable use of an afternoon.

Worked Examples

name,role,active Jane Doe,Engineer,true Sam Smith,Designer,false

The straightforward case. Three columns, two rows, padded so the raw Markdown lines up — which is the point of writing it in Markdown rather than HTML.

check,result login,pass | with warnings signup,fail

The pipe trap. Without escaping, that cell would end its column early and leave the row one wider than the header, breaking the table. The tool escapes it so the value survives.

id;product;price 1;Widget;9.99 2;Gadget;19.50

Semicolon-separated, as European spreadsheet exports usually are. The delimiter is detected automatically, and the price column can be right-aligned so the decimal points line up.

Features

GitHub Flavored Markdown table output
Pipes inside cells escaped automatically
Line breaks converted to br tags
Per-column alignment including right-aligned numbers
Column padding for readable source
Automatic delimiter detection
Proper RFC 4180 parsing of quoted fields
Optional header row handling
Row and column counts reported
Runs entirely in your browser

How to Use

1. Paste your CSV, or import a file. 2. The Markdown table appears immediately below. 3. Set alignment per column if you want numbers right-aligned. 4. Turn off padding for very wide tables where the source alignment is not worth the bytes. 5. Copy the result into your README or documentation.

Common Mistakes

  • Forgetting to escape pipes. A single unescaped pipe in a cell shifts every column after it, and the resulting table looks broken in a way that is hard to trace back to one value.
  • Putting a real line break in a cell. A table row must be one line, so the table simply ends there — use a br tag if the content genuinely needs a break.
  • Splitting the CSV on commas. Any quoted field containing a comma comes apart, which is why a real parser matters even for a job this simple.
  • Using a Markdown table where GFM is not supported. Tables are a GitHub extension, so in strict CommonMark the whole thing renders as literal text.
  • Left-aligning numeric columns. Right alignment lines the digits up, and comparing magnitudes at a glance is most of the value a table provides.

Frequently Asked Questions

Explore related topics

#Converter