Markdown to Excel Converter
Paste markdown tables from READMEs, docs, or AI chat output and download them as an Excel workbook - one sheet per table.
How to Convert Markdown Tables to Excel
- Paste markdown - a whole README, a chat answer, or just the table. You can also upload .md, .markdown or .txt files, several at once.
- Check the count - the summary reports how many tables were found and how many rows they hold, before anything is downloaded.
- Download XLSX - each table lands on its own sheet, headers included as the first row.
How a Pipe Table Becomes a Sheet
The parser scans the text for a line containing a pipe that is followed by a separator row - the | --- | --- | line, with or without alignment colons. That pair marks the start of a table. Each following line that still contains a pipe is split into cells on unescaped pipes, and every cell is trimmed of surrounding spaces. Leading and trailing pipes are optional, so the loose style that AI chats and many wikis produce parses the same as a strict GitHub table.
A table ends at the first blank line or the first line without a pipe. Rows that are shorter than the widest row are padded with empty cells, so a table where somebody dropped a trailing pipe still comes out rectangular rather than shifting the columns.
Edge Cases and Limits
- Values are written as text. Markdown carries no types, so 95 becomes the text 95 and 2026-02-10 stays text too. Fix a column with Convert Text to Number when you need to calculate on it.
- Alignment is dropped. The colons in
:---:are used to recognise the separator, not to format the column. - The separator row is required. A block of pipe-delimited lines with no
---row underneath is not a table and is skipped; add one, or paste the block into CSV to Excel with the pipe as the delimiter. - HTML tables are not read. If your document uses
<table>markup instead of pipes, use HTML to Excel. - Escapes decoded:
\|becomes a pipe inside the cell and\\becomes one backslash. All other markdown stays literal. - Sheet names are Table 1, Table 2 and so on, in document order.
Tables Pasted from AI Chats and Wikis
Most tables people paste here did not come from a strict Markdown editor, so the parser is deliberately tolerant: pipes at the start and end of a line are optional, extra spaces around cells are trimmed, and text before or after the table is ignored. Four things still break a paste, and all four are quick to spot:
- The separator row is missing. Chat answers sometimes render a table visually without emitting the
| --- |line. Add one line under the header and the table is found. - A row was wrapped by the window it was copied from, splitting one record across two lines. The second half becomes its own row, or is dropped if it has no pipe.
- A blank line inside the table ends it. The rows after the gap become a second table, and therefore a second sheet, unless they have their own separator row.
- Bold headers such as
**Region**arrive with the asterisks intact - the parser removes only pipe and backslash escapes, never formatting.
When to Use a Different Tool
Going the other way, Excel to Markdown turns a worksheet back into a pipe table. Tables in a LaTeX paper are handled by LaTeX to Excel, tables in a web page by HTML to Excel, and JSON or YAML records by JSON to Excel and YAML to Excel. Once the workbook is downloaded, Excel Editor opens it in the browser for a quick tidy-up.
Frequently Asked Questions
Markdown has no types - every cell in a pipe table is a run of characters - so each value is written to the workbook exactly as it was written in the table, including numbers and dates. Excel flags them with the green triangle and 'Number stored as text'. Select the column and use Convert to Number in Excel, or run the file through our Convert Text to Number tool.
A line containing at least one pipe, immediately followed by a separator line whose cells are all dashes, optionally with alignment colons (---, :---, ---:, :---:). Everything after that, until a blank line or a line with no pipe, is treated as data. Leading and trailing pipes are optional, and the alignment colons are read only to recognise the separator - column alignment is not applied to the spreadsheet.
Every table in the text becomes its own sheet, in document order, named Table 1, Table 2 and so on. Headings above a table are not used as sheet names, so rename the tabs in Excel if the order alone is not clear enough.
They are kept as literal text: **Total** arrives in the cell as **Total**, and [docs](https://example.com) arrives as the whole bracketed string. Only two escapes are decoded - \| becomes a real pipe inside the cell, and \\ becomes a single backslash - because those are the ones that would otherwise break the row.
No. A <br> stays as the literal text <br> in the cell. Our Excel to Markdown export writes <br> for an in-cell line break, so a round trip through both tools leaves that marker visible - use Find and Replace afterwards if you want a real line break back.
.md, .markdown and .txt, one at a time or as a batch that comes back as a ZIP of workbooks. Uploads are decoded with encoding detection first, so a UTF-16 or windows-1252 file is read correctly rather than turning accented characters into mojibake.