CSV to Markdown

Convert CSV or TSV into a GitHub-flavored Markdown table you can paste into docs or READMEs.

Drop a file or click to browse

or paste data below

How CSV to Markdown works

What the output looks like

The output is a pipe table in GitHub-flavored Markdown (GFM): a header row, a separator row of --- cells, and one line per data row. GitHub, GitLab, most static site generators, and many note apps render this format.

Columns are left-aligned, which is the GFM default. To right-align numbers, edit the separator under that column to ---: after copying. Columns are not padded to equal width, so the raw text is compact rather than lined up; renderers ignore the spacing either way.

Characters that would break a table

A pipe character inside a cell would start a new column, so every | in your data is written as \|. A line break inside a quoted CSV field would end the row, so it is written as <br>, which GitHub renders as a line break inside the cell.

Other Markdown in your data, such as **bold** or backticks, is passed through unchanged and will be formatted by the renderer. If cells contain text that should appear literally, wrap it in backticks in the source first.

Input rules

The first row becomes the table header. Comma- and tab-separated input are both accepted; tabs are detected from the header line, so you can paste a range copied from Excel or Google Sheets. Quoted fields, blank lines, and duplicate header names are handled the same way as in the CSV to JSON converter.

Very wide tables are hard to read in Markdown. If your file has many columns, drop the ones readers do not need with Column Tools before converting.

Example

The pipe in a|b is escaped, and the line break inside the last description becomes <br>.

CSV input
flag,default,description
--out,dist,"Output folder"
--mode,a|b,"Build mode: a or b"
--verbose,false,"Print each step
(slow)"
Markdown output
| flag | default | description |
| --- | --- | --- |
| --out | dist | Output folder |
| --mode | a\|b | Build mode: a or b |
| --verbose | false | Print each step<br>(slow) |

How to use CSV to Markdown

  1. 1

    Paste CSV or TSV, or drop a file.

  2. 2

    Check the Markdown output; the first row becomes the header.

  3. 3

    Optionally open it in Markdown Preview to see how it renders.

  4. 4

    Copy it into your README or download table.md.

When to use it

README option tables

Keep CLI flags or config options in a spreadsheet and regenerate the README table when they change.

Pull request summaries

Paste benchmark results or migration counts into a PR description as a readable table.

CSV to Markdown questions

Can I set column alignment?

The converter writes left-aligned columns. Change a separator cell to ---: for right alignment or :---: for centered after copying.

Why does my table show <br> as text?

Some renderers do not allow inline HTML. GitHub and GitLab render <br> as a line break; stricter renderers show it literally. Remove line breaks from the source cells if your target renderer does not support HTML.

Does it work with tab-separated data?

Yes. If the header line has more tabs than commas, the input is read as TSV.

Questions about privacy, file size, or accounts are answered on the FAQ page.

Other tools in the same category

Search all tools