---
title: "Markdown Table to CSV"
description: "Paste a GitHub-flavored Markdown pipe table, or a whole README with several, and download clean CSV. Escaped pipes, alignment rows and code fences are handled, and the same page turns a CSV back into a Markdown table."
url: https://findutils.com/convert/markdown-table-to-csv/
category: convert
---

# Markdown Table to CSV

Paste a GitHub-flavored Markdown pipe table, or a whole README with several, and download clean CSV. Escaped pipes, alignment rows and code fences are handled, and the same page turns a CSV back into a Markdown table.

**Use this tool:** [Markdown Table to CSV](https://findutils.com/convert/markdown-table-to-csv/)

## Programmatic access

- REST id `markdown-table-to-csv`: POST https://api.findutils.com/api/tools/markdown-table-to-csv/execute (reference: https://findutils.com/api/markdown-table-to-csv/)
- MCP tool `markdown_table_to_csv` on https://mcp.findutils.com (reference: https://findutils.com/mcp/markdown-table-to-csv/)
- Data: The REST API and the MCP tool are a separate path from this page: a call sends the input you include to FindUtils over HTTPS, where it is processed and the result returned. FindUtils does not store that input, and logs the request without its content.

## Why Use Markdown Table to CSV?

Comparison matrices, API parameter lists and pricing tables live in READMEs, wikis and pull request comments as Markdown pipe tables. A spreadsheet cannot read them: retyping the cells is slow, replacing pipes with commas breaks on an escaped \| or a comma inside a cell, and pandoc or pandas is a lot of setup for one table. This page reads GitHub-flavored Markdown the way GitHub renders it. It finds every table in the text, skips tables inside code fences, drops the alignment row, turns \| into a literal pipe and writes RFC 4180 CSV. When the table has to go back into a pull request, the same page turns a CSV into a Markdown table.

## Markdown Table Tips

- A pipe inside a cell must be written as \| in Markdown. The CSV gets a plain |. A pipe inside backticks still splits the cell, as it does on GitHub, so escape it there too.
- A table is a header row followed by a delimiter row such as | --- | :---: | ---: | with the same number of cells. Without that row, the lines are a paragraph, not a table.
- Tables inside ``` or ~~~ code fences are skipped, so a SQL snippet or a table shown as an example is not picked up.
- A row with fewer cells than the header gets empty cells. Extra cells are dropped, because GitHub drops them when it renders the table; the notes name those lines.
- Inline Markdown stays as written: **Team** stays **Team** and a link stays [text](url). Remove the markup in the spreadsheet if you only want the text.

## Frequently Asked Questions

### How do I convert a Markdown table to CSV?

Paste the Markdown into the Markdown panel or drop the .md file on it, and the CSV appears in the CSV panel. If the text holds several tables, pick one in the Table menu. Then download the CSV or copy it. The alignment row is dropped and each data row becomes one CSV line.

### Which Markdown tables can it read?

It reads GitHub-flavored Markdown pipe tables: a header row, a delimiter row of dashes with one cell per column, and data rows. The outer pipes are optional and the alignment colons are recognized. It does not read HTML tables, pandoc grid tables or lists; for an HTML table, use [HTML Table to JSON](https://findutils.com/convert/html-table-to-json/).

### What if my README has several tables?

Every table is listed in the Table menu with its number, the line it starts on, and its rows and columns, and the first one is converted until you pick another. Tables inside ``` or ~~~ code fences are ignored, so an example inside a code block is not mistaken for data.

### How are escaped pipes and inline Markdown handled?

An escaped pipe, \|, becomes a plain | in the CSV cell. A pipe inside backticks still splits the cell, as it does on GitHub, unless it is escaped. Other Markdown in a cell, such as **bold**, `code` or a [link](url), is kept exactly as written.

### What happens when a row has more or fewer cells than the header?

A short row gets empty cells for the missing columns. Extra cells are dropped, which is what GitHub does when it renders the table. Both are listed in the notes with their line numbers, so you can fix the source if the extra cells mattered.

### Can I convert CSV to a Markdown table on this page?

Yes. Switch the direction to CSV to Markdown, paste the CSV, and copy or download the table. The separator is detected or set by hand, quoted cells may hold commas, pipes are escaped as \|, and you choose left, center or right alignment. The table is capped at 10,000 rows and 200 columns. For a JSON array, [JSON to Markdown Table](https://findutils.com/convert/json-to-markdown-table/) builds the table instead.

### Can it read a README from a GitHub link?

No. The page does not fetch URLs. Open the README on GitHub, choose Raw or copy the Markdown source, and paste it here, or download the .md file and drop it on the Markdown panel.

### Is my Markdown uploaded?

On this page, no. The tables are found and the CSV is built in your browser, and the page sends no request with your text; you can check that in the network panel. The REST API and MCP tool are a separate path: a call sends the input you include to FindUtils over HTTPS, where it is processed and the result returned. FindUtils does not store that input, and logs the request without its content.

### Is there an API for Markdown table to CSV?

Yes. The markdown_table_to_csv tool on the FindUtils REST API and MCP server takes the Markdown text, the table number, the separator and the header choice, and returns the CSV with the parsed rows and a list of every table found. It parses tables with the same module as this page.

### Will the CSV open correctly in Excel or Google Sheets?

Yes. Google Sheets and Numbers read the UTF-8 file as it is. Excel on Windows can show accented letters wrongly in a plain UTF-8 CSV; turn on Excel BOM before you download. If your Excel expects semicolons, choose the semicolon separator.

### How long can the Markdown be?

Up to 5,000,000 characters, which is far more than a README. When the output has more than 2,000 lines, the panel shows the first 200, and Copy and Download still use the whole CSV.

## Related Tools

- [JSON to Markdown Table](https://findutils.com/convert/json-to-markdown-table/)
- [Markdown Table Generator](https://findutils.com/text/markdown-table-generator/)
- [JSON to CSV](https://findutils.com/convert/json-to-csv/)
- [HTML Table to JSON](https://findutils.com/convert/html-table-to-json/)
- [TSV to CSV](https://findutils.com/convert/tsv-to-csv/)
- [CSV Viewer](https://findutils.com/convert/csv-viewer/)
- [Markdown Table to Image](https://findutils.com/developers/markdown-table-to-image/)
