Excel to Markdown Converter
Turn worksheet rows into clean Markdown tables for GitHub, docs, wikis, tickets, and README files. The conversion runs locally in your browser.
Drop your files here or click to upload
Supports .xlsx, .xls, .xlsm, .xlsb · up to 50MB · or paste a file from your clipboard
How to Export Excel Tables
- Upload an Excel workbook - Your file is opened locally in the browser.
- Choose the worksheet and format - Export Markdown, LaTeX, YAML, or TSV from the same data.
- Copy or download the result - Use the output in docs, reports, repositories, or data pipelines.
For more Markdown table work - HTML, LaTeX, or JSON output - see MarkdownTools' table converters.
What's next?
Keep going with one of these tools.
Exactly What the Markdown Output Looks Like
The converter writes a GitHub-flavoured pipe table: a header line, a separator line, then one line per row, each with leading and trailing pipes and a single space of padding around every value. A three-column sheet comes out like this:
| Region | Units | Revenue |
| --- | --- | --- |
| North | 120 | 4820.5 |
| South | 98 | 3910 |The table is not column-aligned with extra spaces. Padding cells to equal width makes the raw file prettier and the diff noisier, and every Markdown renderer treats the two identically.
How Rows and Columns Are Mapped
- First row as headers is on by default. Turn it off and the headers become Column 1, Column 2 and so on, with every spreadsheet row kept as data.
- Empty header cells are filled in as Column N, because a pipe table with a nameless column renders badly in most viewers.
- Duplicate headers are made unique by appending a number - two columns called Total become Total and Total 2.
- Ragged rows are padded to the width of the longest row, so short rows end with empty cells rather than a broken table.
- Numbers are trimmed of floating-point noise: a cell holding 1.1000000000000001 exports as 1.1, matching what the workbook shows.
- Blank cells export as empty cells, not as a dash or a placeholder.
Edge Cases and Limits
Markdown text inside your cells is not escaped beyond pipes and backslashes, so a value like *draft* renders as italics in the finished table. That is usually what people want; if it is not, wrap the value in backticks in the spreadsheet before exporting. Cells over roughly 32,000 characters are longer than Excel can store in the first place, and very wide tables stay readable in the raw file but wrap awkwardly in narrow documentation themes - consider transposing or splitting those.
One sheet is converted at a time. Pick the sheet from the selector above, or split a large workbook into per-sheet files first with the Excel splitter.
Round-Tripping Between Excel and Markdown
Markdown carries no types and no formatting, so a round trip through this exporter and back through Markdown to Excel is lossy in predictable ways. Knowing which ways saves a lot of confusion when the numbers refuse to add up on the way back:
- Types are lost in one direction only. A number exports as digits, and comes back as a text cell, because the Markdown source cannot say whether 007 is a number or a product code.
- In-cell line breaks become
<br>on the way out, and stay as the literal text<br>on the way back. - Escaped pipes survive both trips - a value containing a pipe is written as
\|and decoded back to a pipe on import. - Sheet names do not survive. Markdown has no place to record them, so the workbook you get back has sheets called Table 1, Table 2.
- Empty trailing columns disappear if no row has a value there, because the table width comes from the longest row.
For a lossless round trip, keep a copy of the workbook and treat the Markdown as a rendering, not as storage.
When to Use a Different Tool
Going the other way, Markdown to Excel turns pipe tables from a README or a chat answer back into a workbook. The same screen here also exports LaTeX tabular and YAML records from the identical data, and Excel to HTML is the better choice when the destination is a web page that needs real table markup. For a copy-paste into a spreadsheet or a chat window, Excel to CSV and the TSV option in the format list are simpler than Markdown.
Frequently Asked Questions
Because the export writes the value Excel stores, and a date cell stores a serial number - 45292 is 1 January 2024. The display format lives in the workbook's styles, not in the cell, and Markdown has no way to carry it. Add a helper column with =TEXT(A2,"yyyy-mm-dd") and export that column instead.
No. Every column gets a plain --- separator, which renders left-aligned everywhere. If you want a right-aligned numeric column, change that column's separator cell to ---: by hand after copying; the rest of the table is unaffected.
A pipe is escaped as \| so it stays inside its cell instead of splitting the row, backslashes are doubled, and a line break inside a cell becomes <br>, which is what GitHub-flavoured Markdown renders as a new line inside a table cell.
No. Only cell values cross over. Bold, fills, borders, number formats and cell hyperlinks are dropped, and a formula exports as its last calculated result rather than as the formula. Merged cells export with the value in the top-left cell and empty cells for the rest of the span.
Yes. Drop multiple files and each one's first sheet is converted with the current format and header setting, then downloaded together as a ZIP of .md files. For one file you get the live preview, the sheet selector, and copy-to-clipboard instead.