Convert CSV to Markdown Table
Convert CSV to GitHub-flavored Markdown table with per-column alignment, HTML preview, delimiter auto-detect. Free, offline, client-side, instant.
Convert CSV/TSV to GitHub-flavored Markdown table with per-column alignment (:---, :---:, ---:), live HTML preview, delimiter auto-detect, and headerless mode.
Per-column alignment
HTML preview (rendered)
Output preview will appear here.
How to Use Convert CSV to Markdown Table
- Paste CSV into the input pane, upload a
.csv/.tsvfile, or click Load sample. - Pick a delimiter (auto-detect handles comma/semicolon/tab/pipe - manual override if your CSV is unusual).
- Toggle First row is header. Off → tool emits
col1,col2,col3headers; on → uses first CSV row. - Set per-column alignment (left, center, right) - numbers usually go right, text left, headers often center.
- Watch the live HTML preview render exactly how GitHub/GitLab will show the table.
- Copy the Markdown for paste into a README or download
table.md.
Frequently Asked Questions
How do Markdown table alignments work?
The separator row (the line of dashes between header and data) controls alignment via colon placement. | --- | = default (usually left). | :--- | = left-aligned (explicit). | :---: | = center. | ---: | = right. Right-alignment is universal for numbers in tables. GitHub, GitLab, and CommonMark all support this syntax.
Does GitHub render multi-line cells?
No. Markdown tables don’t support newlines inside cells – each row must be on one line. The tool replaces newlines in CSV quoted cells with spaces. For multi-line content (e.g. code blocks in a cell), you’d need HTML <br> tags – but those don’t render in raw GitHub Markdown preview either.
How are pipes (|) inside cells escaped?
Pipes are the column separator, so any pipe character INSIDE cell content must be escaped as |. The tool does this automatically. Similarly, backslashes are escaped as \. After escaping, GitHub renders both correctly as literal characters.
What’s the difference between GFM and CommonMark tables?
GFM (GitHub-Flavored Markdown) added tables as an extension; CommonMark spec itself doesn’t include tables. In practice: GitLab, Discord, Reddit, and most static-site generators (Hugo, Jekyll, Astro) use GFM tables. Pure CommonMark renderers (some older systems) need an HTML table fallback. This tool emits GFM-compatible syntax which works in 99% of modern Markdown processors.
Can I paste straight from Excel or Google Sheets?
Yes. When you copy cells from a spreadsheet to clipboard, they’re separated by tabs. Set delimiter to “Tab” (or use auto-detect – it identifies tabs from the first line). No need to save as CSV first.
What’s “headerless mode”?
Some CSVs are just data – no header row. Uncheck “First row is header” and the tool generates a generic header (col1, col2, col3) so the resulting Markdown table is still valid (GFM tables require a header row). Edit the column names manually after.
How do I make the Markdown table look pretty?
Some users prefer aligned column widths (padded with spaces) in the raw Markdown for readability. This tool outputs minimal-width Markdown (single space around values). For pretty-printing, paste output into a Markdown formatter or use VS Code’s “Markdown All in One” extension’s table formatter. Rendered output is identical regardless.
Does it handle quoted commas?
Yes. RFC 4180-compliant: "Williams, Joe" stays as one cell. Also handles escaped quotes ("" = literal ") and quoted fields with embedded newlines (the newlines are flattened to spaces for the Markdown output).
Is my data secure?
Yes. CSV input, uploaded files, generated Markdown and HTML preview all stay in your browser. Nothing is uploaded to any server.