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>.
flag,default,description
--out,dist,"Output folder"
--mode,a|b,"Build mode: a or b"
--verbose,false,"Print each step
(slow)"| 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
Paste CSV or TSV, or drop a file.
- 2
Check the Markdown output; the first row becomes the header.
- 3
Optionally open it in Markdown Preview to see how it renders.
- 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.
More converters
Other tools in the same category
Markdown Preview
Live GitHub-flavored Markdown preview with sanitized HTML output, Copy HTML, and print to PDF
CSV to JSON
Turn CSV or TSV rows into a JSON array of objects keyed by the header row
CSV & TSV Preview
View CSV or TSV as a readable table and export the table as an image
CSV to TSV
Convert comma-separated values to tab-separated values without breaking quoted fields