CSV to Markdown Table Converter
Typing a Markdown table by hand means counting pipes and dashes on every line. Upload the CSV instead and get a table with a header row and a delimiter row, ready to paste into a README, a wiki page or a notebook.
Data Converter
or drop CSV, TSV, TXT … files here ·
Max 95 MB per file· Up to 20 files· Deleted after 30 minutes
Files are processed on our servers and deleted after 30 minutes.
Character that separates columns in CSV and text files, for both reading and writing. Auto detects it from the input and writes commas.
UTF-8 works for every language. Choose UTF-8 with BOM if Excel on Windows shows garbled accents or Asian characters when opening the CSV.
Excel, ODS and Numbers input: convert the first sheet only, or every sheet (one CSV per sheet in a ZIP, or one JSON key per sheet).
Name of the sheet tab in the new spreadsheet, up to 31 characters.
Array of objects uses column names as keys for every row; array of arrays is more compact and keeps the header as the first array.
Name of the outer element that wraps all rows; each row becomes a <row> inside it.
Used in CREATE TABLE and INSERT statements. Letters, digits and underscores only.
Quoting and column types differ slightly between databases; pick the one you will import into.
Rewrite date cells in one format. ISO (2026-10-18) is safest for databases and code; keep leaves them as they appear in the source.
How to use this tool
- 1
Upload the CSV
Add .csv, .tsv or delimited .txt files, up to 20 at once and 95 MB each. Auto detect handles commas, semicolons, tabs and pipes.
- 2
Confirm the header
First row is header is on, so row 1 becomes the table heading. Turn it off under Advanced settings if your file starts with data.
- 3
Convert and paste
Press Convert to Markdown table, open the .md file and paste the table into your README, pull request, issue or note.
How do I turn a CSV file into a Markdown table?
Upload the CSV and press Convert to Markdown table. The first row becomes the table header, a row of dashes is added under it, and every other line becomes a row with cells separated by pipes.
Why developers convert CSV to Markdown
Documentation keeps landing in Markdown files. A maintainer wants a table of supported versions in the README, an engineer pastes benchmark numbers into a pull request, a researcher keeps a reading list in Obsidian. The numbers usually start in a spreadsheet or a script's CSV output, and rebuilding them by hand, with a pipe between every cell, is slow and easy to get wrong.
John Gruber's original Markdown from 2004 had no tables at all. The pipe syntax spread through PHP Markdown Extra and was written into the GitHub Flavored Markdown spec in 2017, which is why it works on GitHub and most tools that follow it. If the rows came from Excel, save them first with Excel to CSV, then convert here.
CSV to Markdown table example
runtime,version,status Python,3.13,supported Python,3.9,end of life | October 2025 Node.js,22,supported
| runtime | version | status | | --- | --- | --- | | Python | 3.13 | supported | | Python | 3.9 | end of life \| October 2025 | | Node.js | 22 | supported |
Where a converted Markdown table displays
| Organisation | Requirement | Source |
|---|---|---|
| GitHub | Renders pipe tables in READMEs, issues, pull requests and wikis, following the GFM spec. | GFM specification |
| GitLab | GitLab Flavored Markdown renders the same pipe tables in repositories, issues and merge requests. | — |
| Obsidian | Shows pipe tables in reading view and offers table editing in live preview. | — |
| Jupyter | Markdown cells in notebooks render pipe tables next to your code. | — |
| CommonMark | The core spec has no table syntax; renderers need a table extension. | commonmark.org |
CSV and Markdown format facts
CSV
Comma-separated values
CSV is a plain-text format for tables in which each line is a row and commas separate the columns. It has been used since the early days of computing and is described in RFC 4180, though many variants use semicolons or tabs and different text encodings. Nearly every spreadsheet, database and analytics tool can import and export it, which makes it the default format for moving data between systems. CSV stores only values, with no formulas, formatting, multiple sheets or data types.
- Compression
- –
- Transparency
- –
- Animation
- –
- Introduced
- –
MD
Markdown
Markdown is a lightweight markup syntax created by John Gruber in 2004. It uses plain-text symbols, such as # for headings, * for emphasis and - for lists, that stay readable as raw text and convert cleanly to HTML. It is the standard for README files, documentation, wikis, note apps and many static site generators. There are several dialects, such as CommonMark and GitHub Flavored Markdown, which differ in details like tables. Any text editor can open .md files.
- Compression
- –
- Transparency
- –
- Animation
- –
- Introduced
- 2004 · John Gruber
CSV becomes Markdown when a small dataset has to live inside documentation: a README's compatibility table, a changelog's version list, a pull request comparing benchmark runs or a note in a personal knowledge base.
The conversion is close to lossless for values, but not for intent. CSV keeps every row for software to read; a Markdown table is a picture of the data for people, and it has no types, no formulas and no way to merge cells. Keep the CSV in the repository as the source and regenerate the table when the numbers change.
CSV to Markdown FAQ
Where do Markdown tables render?
Wherever the renderer supports the pipe-table extension: GitHub, GitLab, Obsidian, Jupyter notebooks, and static site generators such as MkDocs and Hugo. A strictly CommonMark renderer shows the same lines as plain text with visible pipes.
What if a value in my CSV contains a pipe character?
An unescaped | would start a new cell and shift every column to the right. The converter writes it as \|, the escape GitHub Flavored Markdown defines, so the pipe shows up as text inside the cell.
Can I align numbers to the right?
Yes, by editing the delimiter row: ---: aligns a column right, :---: centers it and :--- aligns it left. Add the colons after converting; they change only how the table renders, not the data.
How big a CSV makes sense as a Markdown table?
Markdown tables are meant for reading, so a few dozen rows and a handful of columns work best. A table with thousands of rows converts fine but makes a README hard to scroll; link to the CSV file in the repository instead and show a sample.
What happens to line breaks inside a CSV field?
A Markdown table row has to stay on one line, so a quoted CSV value that spans several lines cannot be kept as is. Replace those breaks before converting; on GitHub you can use <br> inside a cell to force one.
Can I convert the table to HTML instead?
If the target is a web page, CMS or email rather than a Markdown file, set Convert to to HTML table. For data that starts out as JSON, the JSON to HTML page has that output preselected.