Markdown table to CSV converter
Turn a Markdown (GitHub style) table, such as one an AI assistant wrote, into CSV for a spreadsheet.
A clear answer. Here’s how.
Finds the first heading row that is followed by a delimiter row of dashes (GitHub Flavored Markdown), splits each row on unescaped pipes, restores escaped pipes and turns <br> into a line break inside the cell. Rows with fewer cells are padded and extra cells are dropped, as GFM specifies. The result is quoted CSV that spreadsheets open correctly. With protection on, cells that start with =, +, - or @ get a leading apostrophe so a spreadsheet will not run them as formulas.
How this is checked
2 reference checks passed These 2 cases were run when this page was built, on 20 October 2026, and all reproduce within the stated tolerance. The same cases are part of the automated tests that run on every change to Toolmoz. Engine version 1.
See the checks and where each expected answer comes from
Case 1
- Inputs
- Markdown containing a table | Name | Qty | Note | | :--- | ---: | --- | | Apple | 3 | red, sweet | | Pear | 10 | a\|b | Spreadsheet formulas yes
- Expected, and what Toolmoz gave
- text expected Name,Qty,Note Apple,3,"red, sweet" Pear,10,a|b, Toolmoz Name,Qty,Note Apple,3,"red, sweet" Pear,10,a|bRows expected 2, Toolmoz 2Columns expected 3, Toolmoz 3
- Where the expected answer comes from
- RFC 4180: a field with a comma is quoted; the escaped pipe is restored
- Allowed difference
- exact
Case 2
- Inputs
- Markdown containing a table Here you go: Col A | Col B --- | --- 1 | 2 3 Done.Spreadsheet formulas no
- Expected, and what Toolmoz gave
- text expected Col A,Col B 1,2 3,, Toolmoz Col A,Col B 1,2 3,Rows expected 2, Toolmoz 2
- Where the expected answer comes from
- A table with no outer pipes inside other text; the short row is padded with an empty cell (GFM)
- Allowed difference
- exact
What this shows: the engine reproduces independently worked values for these cases. It does not prove every possible input is right. To test an answer you were given, see how to check a number; to see what is and is not checked across Toolmoz, see the accuracy ledger.
See a worked example
Worked example
A fixed demonstration, separate from the values you enter above.
- Markdown containing a table
| Name | Qty | Note | | :--- | ---: | --- | | Apple | 3 | red, sweet | | Pear | 10 | a\|b |
- Spreadsheet formulas
- Protect cells that could run as formulas
Example result
| Name | Qty | Note |
|---|---|---|
| Apple | 3 | red, sweet |
| Pear | 10 | a|b |
Only the first table in the text is converted; inline Markdown such as **bold** is kept as written, and <br> becomes a line break inside the cell. Cells that could run as spreadsheet formulas are protected.