Markdown Table Extractor

Paste a Markdown document — the tool finds every GitHub-flavoured table, lets you pick one, and exports its data as CSV (RFC 4180), TSV, JSON (with type-coerced cells), or MySQL-flavour SQL (CREATE TABLE + INSERT). Each table is previewed live so you see exactly what will be exported before you copy. Pure client-side; nothing leaves your browser.

Detected tables

Paste Markdown above to detect tables.

Output format

Output format

Output

Text
 
Preview
How parsing works & format trade-offs

The detector reads the document line by line. A table starts with a header row of pipe-separated cells, followed immediately by a separator row of :---, ---:, :---:, or --- — one per column. Body rows continue until a blank line or a non-table line is hit. The header's most recent # heading is captured as the table's name and is used by default for the SQL CREATE TABLE name.

CSV quotes on need: a cell is wrapped in "…" only when it contains the delimiter, a quote, or a line break. RFC 4180 quotes are doubled to escape them. TSV collapses every tab and newline inside a cell to a space. JSON exports an array of objects keyed by the header; clean integers are emitted as numbers, true/false as 1/0, otherwise the cell is left as a string. SQL infers each column's type from the body (INTEGER / REAL / TEXT), quotes values with the appropriate literal, and emits one INSERT per 50 rows. Markdown is a clean round-trip: padding is tuned to each column's widest cell and the alignment markers are preserved exactly.

Inline pipes inside a cell are not supported by GFM (the parser can't tell apart "a real column break" from "a literal | in a cell"). Tables where this happens are flagged in the row count with a small warning so you know to edit the source. Cells inside backtick code spans (`a | b`) are honoured as the GFM spec requires.