Convert CSV to a Markdown table — right in your browser
Hand-typing pipe characters to build a Markdown table is a special kind of tedium — one misaligned column and GitHub renders the whole thing as a paragraph. This tool takes a CSV and produces a GitHub-flavored Markdown table you can paste straight into a README, a GitHub or GitLab issue, a pull request description, or any docs system that renders Markdown. The first row of the CSV becomes the table header, and pipe characters inside your data are escaped so they can’t break the table structure. Like everything on this site, the conversion runs locally in your browser: benchmark results, pricing sheets, and internal data you’re about to publish selectively don’t need to pass through a server first.
How it works
- Drop a .csv file — the first row becomes the table header.
- Pipes and special characters in cells are escaped automatically.
- Copy or download the Markdown and paste it into your README, issue, or doc.
Frequently asked questions
Where can I use the generated table?
Anywhere GitHub-flavored Markdown renders: GitHub and GitLab READMEs, issues, and pull requests, plus tools like Obsidian, Docusaurus, and most static site generators. It’s a plain pipe-delimited table with a header separator row.
What if my data contains pipe characters?
They’re escaped in the output, so a cell like “A|B” renders as literal text instead of splitting into two columns. This is the failure mode that breaks most hand-made Markdown tables, and it’s handled for you.
Is my CSV uploaded when I convert it?
No — the parsing and table generation run in your browser tab, and the file never crosses the network. If the CSV holds internal metrics or data you haven’t published yet, it stays that way until you decide to paste the table somewhere.
Does the CSV need a header row?
The first row is always treated as the header, because Markdown tables require one. If your CSV is headerless, the first data row will end up as the header — add a header row to the file first if that isn’t what you want. Delimiters (comma, semicolon, tab) are detected automatically.