csvjson

Markdown Table to CSV

Paste any GFM pipe table from GitHub, Notion, Obsidian, or any Markdown editor. Get a properly formatted CSV in one click — alignment rows stripped, commas quoted, ready to open in Excel or Google Sheets.

How it works

Pipe tables — the GFM standard

GitHub Flavored Markdown tables use | to separate columns and a row of dashes (|---|---|) to mark the header separator. This format is supported by GitHub, GitLab, Notion, Obsidian, VS Code, and most modern Markdown editors.

Alignment rows are stripped

The |---|:---:|---:| row defines column alignment for rendering but contains no data. The converter detects and removes it automatically so it never appears in your CSV.

Commas and quotes are handled

Cell values containing commas are wrapped in double quotes. Cell values containing double quotes are escaped per RFC 4180. The output is always a valid CSV regardless of what your table cells contain.

Ragged tables are normalized

If rows have different numbers of columns — common when copying partial tables — shorter rows are padded with empty fields to match the widest row.

When to use this

1

Copy data out of a Notion database

Notion exports tables as GFM Markdown. Paste the exported Markdown and download a CSV for Excel, Google Sheets, or a data pipeline.

2

Convert a GitHub README table

README files often contain reference tables — benchmark results, feature comparisons, API parameters. Convert them to CSV to sort, filter, or import into a database.

3

Extract Obsidian table data

Obsidian stores tables as GFM Markdown in plain text files. Open the .md file, copy the table, convert to CSV without any plugin.

4

Work with documentation tables

Technical docs written in Markdown often contain structured data like config options, error codes, or field definitions. CSV gets that data into a spreadsheet or code.

Example

GitHub PR review table — note the comma in the Reviewers field

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

The alignment row is stripped. "bob, sara" is quoted because it contains a comma. The output opens correctly in Excel and Google Sheets.

Frequently asked questions

What Markdown table format does this support?

GFM (GitHub Flavored Markdown) pipe tables: | Col | Col | rows with a | --- | --- | separator. This is the most common format and is supported by GitHub, GitLab, Notion, Obsidian, VS Code Preview, and most static site generators.

My table has alignment colons like |:---|:---:|---:|. Will those be removed?

Yes. Alignment rows are detected by their dash/colon-only content and stripped before conversion. They never appear in the CSV output.

What if my cell values contain commas?

Values containing commas are wrapped in double quotes per RFC 4180: "bob, sara" becomes a single field. Double quotes inside values are escaped by doubling them.

Can I convert multiple tables at once?

The converter processes all pipe-table rows in the input sequentially. If you paste two separate tables, their rows are combined. For separate CSVs, convert one table at a time.

Does this work with tables from Notion exports?

Yes. Notion exports databases as GFM Markdown. Copy the table block from the exported .md file and paste it here. The alignment row and any trailing whitespace are handled automatically.