CSV to Markdown Table

Convert any CSV to a GitHub-flavoured Markdown table.

Open tool

Overview

The CSV to Markdown table converter takes a CSV and emits a GitHub-flavoured Markdown table. The first row becomes the header, the second a separator row of dashes, and the rest of the data fills in below — ready to drop into a README, issue comment, or pull request description.

It's the quickest way to share tabular data on platforms that render Markdown without supporting native CSV preview. Developers writing changelogs, data folks summarising results in tickets, and tech writers use a csv to markdown converter when prose needs to live alongside a small table.

How it works

CSV is parsed per RFC 4180 — quoted fields, embedded commas, and doubled quotes all survive. Each cell is escaped for Markdown by replacing literal pipes (|) with \| so they don't break table syntax, and newlines inside cells become <br> since Markdown tables are single-line per row.

Column alignment is inferred or chosen explicitly: numeric columns get right-aligned (---:), text stays left (:---), and centred (:---:) is opt-in. Column widths are padded so the source Markdown stays human-readable, not just renderable.

Examples

Input:
name,age,city
Alice,30,Berlin
Bob,42,Lisbon

Output:
| name  | age | city   |
| ----- | --: | ------ |
| Alice |  30 | Berlin |
| Bob   |  42 | Lisbon |
Input:
title,price
"Foo | Bar",9.99
Baz,1

Output:
| title       | price |
| ----------- | ----: |
| Foo \| Bar  |  9.99 |
| Baz         |     1 |

FAQ

Will GitHub render the output correctly?

Yes. The output uses GitHub-flavoured Markdown (GFM) tables, which are also rendered by GitLab, Gitea, Bitbucket, and most static site generators (MkDocs, Docusaurus, Hugo).

Can I keep newlines inside a cell?

Embedded newlines are converted to <br> tags. Markdown tables can't contain literal line breaks because every row must fit on a single line in source.

What about very wide tables?

Markdown tables don't scroll; readers see the full width. If you have more than a handful of columns, consider linking to the raw CSV instead, or pivoting the data first.

Try CSV to Markdown Table

An unhandled error has occurred. Reload ×