CSV to Markdown Table Converter
Paste CSV or upload a .csv file and get a Markdown table instantly, with quoted commas and line breaks handled.
Sample data shown — paste or drop your own to replace it.
How to convert CSV to a Markdown table in 3 steps
Paste or upload the CSV
Paste comma-separated text into the Paste CSV box, click Upload file, or drop a .csv file on it. Excel workbooks (.xlsx, .xls, .ods) work too.
Check the table
It converts as you type. The first row becomes the header; open Edit grid to fix a cell, or use Tools › Auto-align to right-align number columns.
Copy the Markdown
Click Copy Markdown and paste it into GitHub, GitLab, Obsidian or any Markdown file, or download it as .md.
Example
id,name,address,notes 1,Ada Lovelace,"12 St James's Sq, London","Prefers ""Ada""" 2,Grace Hopper,"Arlington, VA","Line one Line two" 3,Alan Turing,Wilmslow,uses a|b
| id | name | address | notes | | --- | ------------ | ------------------------ | -------------------- | | 1 | Ada Lovelace | 12 St James's Sq, London | Prefers "Ada" | | 2 | Grace Hopper | Arlington, VA | Line one<br>Line two | | 3 | Alan Turing | Wilmslow | uses a\|b |
Options explained
- Paste CSV box
- Converts 150 ms after you stop typing, and immediately on paste. The badge shows the detected format; the status line shows rows × columns or what went wrong.
- Upload file
- Reads a file from your computer without uploading it anywhere. .csv files are always parsed as comma-separated; workbooks get a sheet picker..csv · .tsv · .txt · .json · .html · .md · .xlsx · .xls · .ods
- Paste / Sample / Clear
- Paste reads the clipboard (including tables copied from web pages or Sheets), Sample loads example data, Clear empties the box.
- Edit grid / Markdown tabs
- Fix cells, rename headers, set alignment or reorder columns after converting; the Markdown tab shows the source.
- Tools
- Auto-align (numbers right), header case, transpose, and quick or deep clean for stray spaces and blank rows.
- Flavor and Spacing
- GFM suits GitHub and most editors. Padded aligns the pipes in the source; Compact keeps the file smaller.GFM · MultiMarkdown · Pandoc Pipe · reStructuredText · Org-mode · Padded / Compact / No outer pipes
- Collapsible <details>
- Wraps a long table in <details><summary> so it starts collapsed on GitHub.
- Download / Copy link
- Save .md, .xlsx, .csv or .png, or copy a link that reopens the table (stored after #md= in the URL, not sent to the server).
Convert to and from other formats
Also useful
Convert other formats to Markdown
- Excel to Markdown TablePaste cells copied from Excel straight into a Markdown table.
- Google Sheets to Markdown TablePaste a copied range or a public sheet URL.
- TSV to Markdown TableConvert tab-separated text into a Markdown table.
- HTML Table to MarkdownConvert <table> markup into a Markdown table.
- JSON to Markdown TableConvert a JSON array of objects into a table.
- SQL to Markdown TableConvert MySQL, PostgreSQL or SQLite CLI query output.
- Word Table to MarkdownPaste a table copied from Word or Google Docs.
- Web Table to MarkdownCopy a table from any web page and paste it here.
- Image to Markdown TableTurn a screenshot or photo of a table into Markdown in your browser.
- PDF to Markdown TableExtract a table from a PDF page, with OCR for scans.
- Universal Table to MarkdownPaste anything tabular; the format is detected for you.
Convert Markdown to…
- Markdown Table to CSVExport a Markdown table as RFC 4180 CSV.
- Markdown Table to TSVCopy as tab-separated values that paste cleanly into Excel and Sheets.
- Markdown Table to HTMLExport semantic <table> markup.
- Markdown Table to JSONExport rows as an array of JSON objects.
- Markdown Table to LaTeXExport LaTeX tabular code for papers and Overleaf.
- Markdown Table to SQLGenerate CREATE TABLE and INSERT statements.
- Markdown Table to ExcelDownload a real .xlsx with numbers, bold header and one sheet per table.
- Markdown Table to Google SheetsCopy a table that pastes cleanly into Google Sheets.
- Markdown Table to WordCopy a formatted table into Word or Google Docs, or download .docx.
- Markdown Table to ConfluenceWiki markup, storage format or a rich copy for the Cloud editor.
- Markdown Table to JiraConvert to Jira and Confluence wiki markup.
- Markdown Table to ImageRender the table as a PNG or SVG for slides and posts.
About this tool
Paste CSV text or open a .csv file and the Markdown table appears as you type, ready to paste into a README, issue, wiki or notes app. Quoted fields with commas, escaped quotes and multi-line values are handled the way Excel and Google Sheets write them, pipes inside values are escaped, and you can fix cells or alignment in the grid before copying. Everything runs in your browser, so the file never leaves your computer.
- Converts as you paste; no Convert button
- Upload .csv, .tsv, .xlsx, .xls or .ods, or drag and drop
- Quoted fields: commas, "" escapes and line breaks (as <br>)
- Escapes | in values so columns never shift
- Detects tabs and semicolon-separated data
- Edit cells and alignment before copying
- Runs in your browser; files are not uploaded
Technical details
How CSV is mapped to a Markdown table
The parser follows RFC 4180, the common CSV format written by Excel, Google Sheets, databases and most scripts. The first record becomes the header row, every other record becomes a table row, and the result is written as a GFM pipe table.
- Quoted fields: A field wrapped in double quotes can contain commas and line breaks, and "" inside it is one literal quote.
- Line breaks: A newline inside a quoted field becomes <br>, because a real newline would end the Markdown row.
- Pipes: A | inside a value is written as \| so it does not create an extra column.
- Ragged rows: Short rows are padded with empty cells; a missing header name becomes “Column N”.
- Whitespace: Spaces around each value are trimmed; a byte-order mark at the start of the file is ignored.
- Delimiters: Commas by default; tab-separated text is detected automatically, and semicolons are used when at least two lines split consistently on them and the commas look like decimals (1,5). Uploaded .csv files get the same check.
Common problems and fixes
A semicolon CSV still splits at the commas
Cause: Semicolons are used when at least two lines have the same number of them. A file whose lines have different numbers of semicolons, or a single line, is read as comma-separated.
Fix: Make every line carry the same number of semicolons (a trailing ; counts), re-export with commas, or replace ; with tabs before pasting.
The data was read as a Markdown table instead of CSV
Cause: Several lines contain a | character, which looks like a pipe table when pasted.
Fix: Upload the .csv file instead of pasting it; files ending in .csv are always parsed as CSV.
Everything ended up in one column
Cause: The data uses a delimiter that was not detected, such as runs of spaces, or the lines have different numbers of delimiters.
Fix: Save it as comma- or tab-separated, or paste it into the Universal Table to Markdown page.
The first data row became the header
Cause: The CSV has no header row; the first line is always used as the header.
Fix: Type header names into the first line before pasting, or rename the headers in the grid and add the row back.
Platform compatibility
| Platform | Support | Notes |
|---|---|---|
| Excel & Google Sheets exports | Supported | Standard comma-separated CSV, including UTF-8 files with a byte-order mark. |
| GitHub & GitLab | Supported | The GFM output renders in READMEs, issues, PRs and wikis; <br> works in cells. |
| Obsidian | Supported | Renders in Reading view and Live Preview. |
| Pandoc | Supported | Reads the output with its pipe_tables extension, enabled by default for Pandoc Markdown. |
| CommonMark core | Extension | Tables are not part of core CommonMark 0.31.2; the renderer needs a GFM table extension. |
Frequently asked questions
How do I convert CSV to a Markdown table?
Paste the CSV into the box above or click Upload file and choose the .csv. The Markdown table is generated as you type; click Copy Markdown and paste it where you need it. The first CSV row becomes the table header.
Does it handle commas inside quotes?
Yes. A value in double quotes, such as "Arlington, VA", stays in one cell, "" inside quotes becomes a literal quote, and a line break inside quotes becomes <br> so the Markdown row is not broken.
Can I upload an Excel file instead?
Yes. Upload file accepts .xlsx, .xls and .ods as well as .csv. Cells are converted as Excel displays them (formatted numbers, dates and formula results), and a workbook with several sheets shows a sheet picker.
Does it work with semicolon-separated CSV?
Yes. When at least two lines have the same number of semicolons, the semicolons are used as the delimiter, including for decimal commas (1,5) and for uploaded .csv files. If the lines have different numbers of semicolons it is read as comma-separated; re-export it with commas or tabs.
Is my data uploaded anywhere?
No. Parsing and conversion run in your browser, and uploaded files are read locally. A draft is saved in your browser’s local storage so a reload does not lose it.
How do I paste the result into GitHub?
Click Copy Markdown, then paste into a .md file, README, issue or pull request on its own lines, with a blank line before and after. GitHub renders it as a table in the preview and after saving.
How do I right-align number columns?
Click Tools › Auto-align to right-align columns that are mostly numbers, or open Edit grid and set alignment from a column’s ▾ menu. The delimiter row then uses ---: for those columns.
My CSV has no header row. What should I do?
The first line is always used as the header, so add a header line before pasting, or rename the headers in Edit grid and re-add the first row. GFM tables require a header row.