csvjson

Convert Markdown Table to CSV

Paste any GFM markdown table and get a clean CSV file instantly. Strips alignment rows, handles quoted fields, and downloads in one click.

🔧

Markdown → CSV is coming soon. In the meantime, try the JSON → CSV converter, which has flattening built in.

How it works

Paste your markdown table

Supports standard GFM pipe tables: | col | col | rows with a header separator row of dashes. Works with tables from GitHub, Notion, Obsidian, and any Markdown editor.

Alignment rows are stripped automatically

The |---|:---:| separator row that defines column alignment in GFM tables is detected and removed from the output — it's not data, so it doesn't belong in the CSV.

Fields with commas are quoted

Any cell value containing a comma, double quote, or newline is automatically wrapped in double quotes per RFC 4180. The output is always a valid CSV file.

Example

GitHub pull request review table exported from a Markdown document

Input
| PR | Author | Status | Reviewers |
|-----|--------|--------|-----------|
| #142 | alice | Approved | bob, sara |
| #143 | bob | Changes requested | alice |
| #144 | sara | Draft | — |
Output
PR,Author,Status,Reviewers
#142,alice,Approved,"bob, sara"
#143,bob,Changes requested,alice
#144,sara,Draft,—

The 'Reviewers' field for PR #142 contains a comma, so it's quoted automatically. The alignment row is silently removed.

Frequently asked questions

What is a GFM markdown table?

GFM (GitHub Flavored Markdown) tables use pipe characters to separate columns: | Col1 | Col2 |. The second row contains dashes that define alignment: |---|---|. This format is supported by GitHub, GitLab, Notion, Obsidian, and most modern Markdown renderers.

Does this handle tables from Notion or Obsidian?

Yes. Both Notion and Obsidian export tables in GFM pipe format. Copy the Markdown source (not the rendered table) and paste it here.

What if my table has commas in cell values?

Values containing commas are automatically wrapped in double quotes in the CSV output, following RFC 4180. The CSV is always valid regardless of cell content.

Can I convert multiple tables at once?

The converter processes all pipe-table rows it finds in the input. If you paste multiple tables, all rows are combined into a single CSV. For separate tables, convert them one at a time.

My table has alignment colons like |:---|:---:|---:|. Will those cause issues?

No. Alignment rows are detected by their content (dashes and optional colons) and stripped before conversion. They never appear in the CSV output.