Excel to Markdown

Upload an Excel file (.xlsx, .xls) and convert it to a formatted Markdown table.

Drop an Excel file here or click to upload
Accepted formats: .xlsx,.xls,.ods
Output — Markdown Table

To convert Excel to Markdown, drop the .xlsx file onto the box above and copy the table that appears. The first sheet is converted, row 1 becomes the header, and every cell is written as its stored value. If the workbook has more sheets, a note under the table says which sheet you are seeing and how many there are.

What does the output look like?

A simple sheet with an empty cell

Spreadsheet in
   A        B      C
1  Region   Q1     Q2
2  North    1200   1350.5
3  South    980
Markdown table out
| Region | Q1 | Q2 |
| --- | --- | --- |
| North | 1200 | 1350.5 |
| South | 980 |  |

Dates, a formula, currency and a percentage

Spreadsheet in
   A             B      C       D               E
1  Date          Units  Price   Total           Share
2  Jan 15, 2026  3      $4.50   13.5 (=B2*C2)   25%
Markdown table out
| Date | Units | Price | Total | Share |
| --- | --- | --- | --- | --- |
| 46037 | 3 | 4.5 | 13.5 | 0.25 |

The file stores the underlying values, and those are what you get: the date as Excel's day count (46037), the formula's last calculated result, and 0.25 instead of 25%. See below for how to keep the formatting.

A workbook with two sheets

Spreadsheet in
Tab 1 "Summary"
   A        B
1  Metric   Value
2  Orders   418

Tab 2 "Raw data" (not converted)
Markdown table out
| Metric | Value |
| --- | --- |
| Orders | 418 |

> Showing sheet "Summary" (2 sheets total)

What about workbooks with several sheets?

Only the first tab is converted, and a line such as > Showing sheet "Summary" (2 sheets total) is added under the table so this is never silent. To convert another sheet, drag its tab to the first position, save, and drop the file again. There is no sheet picker yet.

Do I get the formula or its result?

The result. Excel saves the last calculated value of every formula in the file, and that value is what goes in the cell, so =B2*C2 shows as 13.5. The formula text is not included. A file written by a program that never calculated it may have no saved result, and those cells come out empty. Open and save it in Excel or LibreOffice first.

Why do my dates show as numbers like 46037?

Excel stores a date as the number of days since 1900 and only formats it as a date on screen. The converter reads the stored value and ignores number formats, so dates become day counts, 25% becomes 0.25 and $4.50 becomes 4.5.

To keep what you see, either add a text column such as =TEXT(A2,"yyyy-mm-dd") and convert that, or copy the cells and paste them into CSV to Markdown, since the clipboard carries the formatted text.

What happens to merged cells?

Markdown tables have no merged cells. The value goes in the top-left cell of the merged range and the other cells in that range are empty. A merged title row across the top will therefore become a header with one label and blank columns, so unmerge or delete it first.

How are pipes, line breaks, blank rows and other edge cases handled?

InputWhat you get
Pipe | in a cellEscaped as \|
Line break in a cell (Alt+Enter)Kept as a real line break, which splits the table row. Replace it first
Empty cellEmpty table cell
Blank row inside the dataKept as a row of empty cells
Short rowsPadded to the widest row
TRUE / FALSEtrue / false
Dates, %, currency, thousands separatorsStored value without formatting (46037, 0.25, 4.5, 1200)
FormulasLast saved result; formula text dropped
Merged cellsValue in the top-left cell only
Bold, colours, comments, images, chartsDropped; only values are read
Accents, CJK and emojiPassed through unchanged
Very wide sheetsEvery used column is kept; the table may scroll sideways when rendered

How does this compare with pandas and Excel's own export?

MDConvert (this page)pandas to_markdown()Excel Save As
Produces a Markdown tableYesYes, with the tabulate package installedNo, CSV is the closest option
Which sheetFirst sheet onlyAny, via sheet_nameThe active sheet, for CSV
DatesDay-count numbersRead as datesWritten as displayed
SetupNone, runs in the browserPython, pandas, openpyxl and tabulateExcel
Batch / scriptingNo, one file at a timeYesNo

For many workbooks, or when dates matter, pd.read_excel("file.xlsx").to_markdown() is the better choice. This page is for one file, with nothing to install.

Maintained by Ankit Aglawe. Last updated .

Related Tools

Need a different format? See every tool on the Markdown converter page, or go back to the MDConvert home page.

Excel to Markdown questions

Which file types can I use?
Excel .xlsx and the older .xls, plus OpenDocument .ods from LibreOffice. For a Google Sheet, choose File, Download, Microsoft Excel (.xlsx) and drop that file here.
Can I paste cells instead of uploading a file?
Not on this page, it reads files only. Copy the cells and paste them into the CSV to Markdown converter instead: Excel puts tab-separated text on the clipboard, and that tool detects tabs. Pasting also keeps dates and percentages as you see them.
Is the first row used as the header?
Yes. Row 1 of the sheet becomes the table header. If your data starts lower down or has a title row above the headers, delete those rows first.
Are hidden rows and columns included?
Yes. Hidden rows and columns are still in the file and they are converted like any other. Delete them, rather than hiding them, if they should not appear.
Can it open a password-protected workbook?
No. An encrypted file cannot be read without the password, so the conversion fails with an error. Remove the password in Excel, save a copy, and convert that.
Is my spreadsheet uploaded?
No. The file is read by JavaScript in your browser tab and never leaves your computer, which matters for payroll, sales or customer sheets.