Free · Runs in your browser · No sign-up
Excel to Markdown Table Converter
Drop in an .xlsx, .xls, .ods or .csv workbook and get a clean Markdown table for every sheet. The file is read in your browser and never uploaded anywhere.
Drop your .xlsx, .xls, .xlsm, .ods, .csv file here
It never leaves your browser — the conversion runs on this page.
Nothing is uploaded. The workbook is read by JavaScript running on this page — the bytes go from your disk into this browser tab and no further, so a spreadsheet of salaries or client names is as private here as it is in Excel.
Markdown
Choose a spreadsheet above and the Markdown tables appear here.
Where does the Markdown go next?
Bulguritto keeps your notes as plain Markdown files on iPhone, iPad and Mac, synced and searchable — the same format this converter just handed you. Free.
What survives the conversion, and what does not
A spreadsheet is two things at once: a grid of values and a piece of visual design. Only the first half has a Markdown equivalent. What comes out of the converter is the values and the layout of the grid — rows, columns, the header, the reading order — and that is genuinely all of it.
Dropped, with no way around it: cell fills and font colours, bold and italic applied through cell formatting, borders, merged cells, conditional formatting, data bars, charts, embedded images, comments, frozen panes, filters, and hidden columns (which come through as ordinary visible ones). A GitHub-flavoured Markdown table has a header row, body rows, and one alignment marker per column. There is nowhere to put a colour. Any tool that claims otherwise is smuggling in HTML.
Formulas are the case people are most often surprised by. A cell holding =SUM(B2:B9) converts to the number Excel last calculated for it, because that number is what the cell is as far as a reader is concerned. The consequence worth stating plainly: the Markdown you get is a snapshot. Change the source workbook and the table does not follow.
Why you see 12.5% rather than 0.125
Excel stores a percentage as a fraction and shows you a percentage; it stores a date as a serial number counting days from 1900 and shows you a date. The number format is a display layer sitting on top of a value that often looks nothing like it.
This converter takes the displayed value — what you would see if you looked at the sheet. A margin cell reads 12.5%, not 0.125. A currency cell keeps its symbol and thousands separator. A date arrives formatted the way the workbook formats it, which means a sheet built in a US locale gives you 3/14/2026 and one built in Europe gives you 14/03/2026. If you need ISO dates or raw fractions in the output, change the number format in Excel first and convert again — it is a two-second fix in the source and an unfixable one afterwards.
Workbooks with several sheets
By default the whole workbook is converted in sheet order, with each table under an ## heading carrying the sheet’s name. That is usually what you want when the destination is a README or a single note: one document, navigable, with the tab names doing the navigation. Untick Heading above each sheet if you want bare tables to paste somewhere that supplies its own headings, or pick one sheet from the menu and ignore the rest. Empty sheets are skipped rather than producing an empty table, and trailing blank rows and columns — the usual residue of a sheet someone has been editing for a year — are trimmed off the edges.
The other route: copy a range straight out of Excel
If you only want part of a sheet, you do not need the file at all. Select the range in Excel and copy it: what lands on your clipboard is tab-separated values, one line per row. Paste that into the CSV to Markdown converter, which detects tabs automatically, and you have a table for exactly the cells you highlighted. This is the faster path for a twenty-row extract from a thousand-row model, and it works identically from Google Sheets and Numbers.
Here is what a small sheet turns into. Four rows, four columns:
| Region | Units | Revenue | Share |
| :--- | ---: | ---: | ---: |
| North | 1284 | $41,208 | 38% |
| South | 942 | $29,733 | 27% |
| East | 655 | $21,014 | 19% |Note the second line. Those dashes are what tell a Markdown parser the row above was a header, and the colons set the alignment — :--- left, ---: right, :---: centred. Numeric columns are right-aligned because that is how numbers are read. Pipes inside a cell are escaped as \| so they cannot end the cell early, and a line break inside a cell becomes <br>, which is the only way to get one into a Markdown table.
Flatten merged cells first
Worth being honest about the one thing that reliably produces a disappointing result. Markdown tables cannot merge cells — there is no colspan, no row grouping, no second header level. A merged title spanning columns A to D arrives as its text in the first column and three empty cells beside it, and a table with a two-row banner header arrives with its real column names on the second row.
The fix is in the spreadsheet, before you convert: unmerge, repeat the value across the cells that need it, and make sure a single row holds the column names. Five minutes of tidying gives you a table that pastes anywhere; converting first and repairing the pipes by hand does not.
Where the table goes next
Usually a README, a pull-request description, a wiki page, or a note. If the source was a document rather than a spreadsheet, the PDF to Markdown and Word to Markdown converters do the same job for those formats, and Markdown to Word takes the result back the other way when someone asks for a .docx.
Bulguritto is a notes app for iPhone, iPad and Mac that stores every note as a plain .md file rather than exporting to one on request, and it edits tables as tables instead of as raw pipes. So a converted sheet pastes in, stays editable, and remains a file you can still open with anything else in ten years. It is free.
Frequently asked questions
- How do I convert an Excel file to a Markdown table?
- Drop the .xlsx file onto the box above, or click Choose a file. The workbook is read in your browser and every sheet becomes a GitHub-flavoured Markdown table, which you can copy or download as a .md file. There is no upload and no sign-up.
- Is my spreadsheet uploaded to a server?
- No. The whole converter is JavaScript on this page, so the file goes from your disk into this browser tab and no further. You can check it in your browser's network tab, or disconnect from the internet after the page loads — the tool keeps working.
- What happens to formulas?
- You get the computed value, not the formula. A cell containing =SUM(B2:B9) converts to whatever number Excel last calculated for it. Markdown has no formula layer at all, so this is the only sensible answer — but it does mean the result is a snapshot rather than a live sheet.
- Does it keep cell colours, merged cells and conditional formatting?
- No, and no converter can: a GitHub-flavoured Markdown table has cells, a header row and per-column alignment, and nothing else. Fills, borders, merged cells, conditional formatting, charts, images and frozen panes have no Markdown equivalent, so they are dropped and only the values and the grid layout survive.
- What about a workbook with several sheets?
- By default every sheet is converted in workbook order, each under an H2 heading with the sheet's name, so one file gives you one Markdown document. Use the sheet menu to convert a single sheet instead, or untick 'Heading above each sheet' to get bare tables with no headings.
- Which file types does it read?
- Excel .xlsx, .xlsm and legacy .xls, plus OpenDocument .ods from LibreOffice and Numbers exports, and plain .csv. Files up to 20 MB. Password-protected workbooks cannot be opened — remove the password in Excel and save a copy first.
More Markdown converters
All free, all running in your browser, none of them asking for an account.
PDF → Markdown
PDF to Markdown
Pull the text out of a PDF and get clean Markdown back — headings, lists and paragraphs kept, page furniture dropped.
HTML → Markdown
HTML to Markdown
Paste HTML or a whole web page's source and get GitHub-flavoured Markdown, tables and all.
Word → Markdown
Word to Markdown
Convert a .docx into Markdown in the browser — headings, bold, lists, links and tables survive the trip.
JSON → Markdown
JSON to Markdown
Turn a JSON array into a Markdown table, or a nested object into a readable Markdown outline.
CSV → Markdown
CSV to Markdown
Paste CSV or TSV — or drop the file — and get a GitHub-flavoured Markdown table you can paste anywhere.
Markdown → Word
Markdown to Word
Turn a Markdown document into a real .docx with styled headings, lists, tables and code blocks.
Notes that are already Markdown.
No export step, no lock-in, no conversion tool needed next time. Free on iPhone, iPad and Mac.