Boneyard Tools

CSV to Markdown Table Converter

Paste spreadsheet or CSV rows and get a ready-to-paste GitHub-flavored Markdown table. The parser follows RFC 4180, so quoted fields, commas inside quotes and escaped quotes are read correctly, while pipe characters are escaped so they never break the grid. Set the column alignment and choose whether the first row is a header, then copy the result into any README, issue or wiki.

How to convert CSV to a Markdown table

  1. Paste your CSV into the CSV data box, or click Load sample to see the format.
  2. Leave 'First row is a header' checked if your first line holds column names, or uncheck it.
  3. Pick Left, Center or Right from the Align dropdown to set the column alignment.
  4. Check the generated Markdown table and the line count shown above the output.
  5. Click Copy to paste the table into your document.

Examples

Basic table with a header row

Name,Role
Ada,Engineer
Linus,Maintainer
| Name | Role |
| --- | --- |
| Ada | Engineer |
| Linus | Maintainer |

A comma inside a quoted field stays in one cell

Name,Role
Ada,"Engineer, Lead"
Linus,Maintainer
| Name | Role |
| --- | --- |
| Ada | Engineer, Lead |
| Linus | Maintainer |

Right-aligned columns (colons move to the right)

Item,Price
Pen,3
Book,12
| Item | Price |
| ---: | ---: |
| Pen | 3 |
| Book | 12 |

Frequently asked questions

Does it handle commas inside quoted fields?

Yes. A field wrapped in double quotes can contain commas, line breaks and escaped quotes written as two double quotes, and it is read as a single cell. So Ada,"Engineer, Lead" produces two columns, not three.

What happens to pipe characters in my data?

Every pipe inside a cell is escaped as a backslash pipe, because a bare pipe would start a new table column. Backslashes are escaped first so an existing backslash is not misread.

Can I set column alignment?

Yes. Left keeps plain dashes, Center wraps the separator in colons as :---:, and Right puts a trailing colon as ---:. The alignment applies to every column at once, since GitHub-flavored Markdown reads it from the separator row.

What if my CSV has no header row?

Uncheck 'First row is a header' and the tool builds a header reading Column 1, Column 2 and so on, then treats every row of your data as a table row.

What happens if rows have different numbers of columns?

Ragged rows are padded with empty cells to match the widest row, so the table stays valid. A short row simply ends with blank cells rather than shifting the grid.

How are line breaks inside a cell handled?

A hard line break inside a quoted field is collapsed to a single space, because a Markdown table cell must stay on one line. Each cell is also trimmed, so stray leading or trailing spaces are removed.

Where will the table actually render?

The output is GitHub-flavored Markdown, which renders on GitHub, GitLab, many static site generators and note apps like Obsidian. Some plain CommonMark viewers do not support tables, so the raw pipes may show instead.

Is there a size limit?

There is no fixed limit. The conversion runs in your browser, so the practical ceiling is your device memory, and even large sheets convert almost instantly.

Is my data private?

Yes. The conversion happens entirely in your browser and nothing is uploaded, so your rows never leave your device.

Learn more

Related tools