CSV to Markdown Table
Convert CSV data into a GitHub-style Markdown table.
Column Alignment
or drop a file here
Markdown Output
Building Markdown tables from CSV
Markdown tables use pipes to separate columns and a divider row of dashes under the header. This tool reads your CSV — including quoted fields with embedded commas — and emits a clean, GitHub-flavored Markdown table, escaping any literal | characters in your data. Choose left, center, or right column alignment. Everything is generated locally in your browser.
Built and maintained by Meet Shah · Last updated
What this tool is used for
- Turning a spreadsheet extract into a table for a README or a pull request.
- Producing a Markdown table for documentation from real data.
- Getting a small dataset into a wiki page or an issue comment.
- Converting a query result into a reviewable table.
- Making tabular data readable in a plain-text channel.
Frequently Asked Questions
- Why is the second row all dashes?
- Because that delimiter row is what makes it a table at all. GitHub Flavored Markdown recognises a table only when a row of dashes follows the header, and the colons in it set alignment: :--- left, :---: centre, ---: right. Remove that row and the whole block renders as plain text.
- Can a table have no header?
- Not in GFM — the first row is always the header, and the delimiter row must follow it. If your data has no natural header, either invent one or leave the first row's cells empty, which renders as a blank header band rather than failing to parse.
- What happens to pipes inside my data?
- They are escaped as \| so they stay inside the cell instead of splitting it. This is the single most common way a generated Markdown table breaks, because an unescaped pipe silently creates an extra column and misaligns every row after it.
- Can a cell contain a line break?
- Not directly — a newline ends the row, so multi-line content has to become a literal <br> tag, which GFM permits inside a cell. This tool trims cells rather than converting embedded newlines, so reflow any wrapped text before converting.
- Do the columns need to line up in the source?
- No. The pipes define the columns and whitespace is ignored, so a table renders identically whether or not it is padded to align in the raw text. Padding is purely for humans reading the Markdown source, which is why some formatters add it and others do not.
Common errors and gotchas
- Forgetting to escape pipe characters inside cell values, which split them into extra columns.
- Producing a table so wide it is unreadable in the target, where Markdown has no horizontal scrolling.
- Losing the header row, which a Markdown table needs in order to render at all.
- Overlooking embedded newlines in quoted CSV fields, which cannot appear inside a Markdown cell.
- Assuming alignment is inferred, when it must be expressed with colons in the separator row.
Related Converters tools
JSON to YAML
Convert JSON into clean, readable YAML instantly.
YAML to JSON
Convert YAML configuration into valid JSON.
JSON to XML
Convert JSON structures into nested XML markup.
HWB to HEX Converter
Convert an HWB color to HEX.
JSON to SQL
Turn a JSON array of objects into SQL INSERT statements.
CSV to XML
Convert CSV rows into structured XML records.
XML to CSV
Flatten repeated XML records into CSV rows.
INI to JSON
Parse INI config sections and keys into JSON.