Excel to Markdown table
Copy cells from Excel or Google Sheets and paste — or open an .xlsx and pick a sheet — to get a clean Markdown table. Goes the other way too, straight into a spreadsheet.
How to convert Excel to a Markdown table
- Copy and paste: select cells in Excel, Google Sheets, Numbers, or LibreOffice Calc, copy, and paste into the box. The clipboard carries tab-separated text, so columns stay intact — even cells with line breaks.
- Or open the file: drop an .xlsx, .xlsm, .xls, .ods, or .numbers workbook on the box, pick a sheet, and optionally narrow it to a range like A1:D20.
- Choose whether the first row is the header (or use column letters A, B, C), how merged cells are handled, and whether to skip hidden and empty rows.
- Copy the Markdown table or download it as .md, and check the rendered preview for how GitHub will show it.
When you open a file, each cell is read with the same number format Excel uses to display it, so 45500 with a date format comes out as 2024-07-27, not a serial number, and currency and percentages keep their symbols. Numeric columns are right-aligned in the Markdown automatically. Hyperlinks become Markdown links, and pipes inside cells are escaped so they don't break the table.
Google Sheets to Markdown, with formatting
When you copy from Google Sheets or Excel, the clipboard also holds an HTML copy of the selection. This converter reads it, so bold cells become **bold**, italics become *italic*, strikethrough becomes ~~text~~, and linked cells become [text](url). Merged cells in the selection are resolved too. A bold header row isn't wrapped in asterisks, because Markdown already renders the header bold.
Markdown to Excel: convert a Markdown table to .xlsx
Tables in READMEs, docs, and AI chat answers are Markdown, and pasting Markdown into Excel directly gives you one column full of pipes. The Markdown → Excel tab fixes that two ways:
- Download .xlsx — a real workbook. Numbers like 1,250.00, 12%, and $9.99 are stored as numbers with a matching format, so sums and sorting work; IDs with leading zeros like 0042 stay text. Columns are sized to fit, the header row gets filters, and each table in the document becomes its own sheet.
- Copy for Excel / Google Sheets — puts the table on your clipboard as tab-separated cells plus an HTML table. Click a cell and paste: this is how to paste a Markdown table into Excel without any text-to-columns step.
To create a Google Sheet from a Markdown table, copy it here, open a blank spreadsheet at sheets.new, click A1, and paste. You can also download the .xlsx and open it from Google Drive.
No converter handy? The manual route in Excel is to paste the Markdown into column A, then use Data → Text to Columns → Delimited → Other: |, and delete the dashed delimiter row and the empty first and last columns. In Google Sheets, the same thing is Data → Split text to columns with a custom separator |. It works for simple tables but breaks on escaped pipes and leaves padding spaces behind.
Excel to Markdown with Python and pandas
Python — Excel to Markdown
import pandas as pd # pip install pandas openpyxl tabulate
df = pd.read_excel("report.xlsx", sheet_name="sales")
print(df.to_markdown(index=False))Python — Markdown table to Excel
import io
import pandas as pd
md = open("table.md").read()
df = pd.read_csv(io.StringIO(md), sep="|", skipinitialspace=True)
df = df.dropna(axis=1, how="all").iloc[1:] # drop edge columns + the --- row
df.columns = df.columns.str.strip()
df.to_excel("table.xlsx", index=False)The pandas route is handy inside a pipeline, but it loses Excel's display formatting on the way out and mishandles escaped \| pipes on the way in. For a CSV file rather than a workbook, the CSV to Markdown converter has delimiter detection and a Markdown table generator, and the JSON to Markdown converter handles API responses and other JSON data.
Frequently asked questions
How do I convert Excel to a Markdown table?
Select the cells in Excel, copy them (Ctrl + C or ⌘ + C), and paste into the box above — the Markdown table appears instantly. Or open the .xlsx file itself, pick the sheet, and optionally type a range like A1:D20. Dates, currency, and percentages come out exactly as Excel displays them.
How do I convert a Markdown table to Excel?
Switch to Markdown → Excel, paste the table, and click Download .xlsx — you get a real Excel workbook with numbers stored as numbers, column widths set, and filters on the header row. If the Markdown has several tables, each one gets its own sheet, named after the heading above it.
How do I copy a Markdown table to Excel?
Pasting raw Markdown into Excel puts every row into one cell, pipes and all. Paste it here instead, click Copy for Excel / Google Sheets, then click a cell in Excel and paste: every value lands in its own cell. The copy includes both tab-separated text and an HTML table, so Excel, Google Sheets, and Numbers all split it correctly.
How do I create a Google Sheet from a Markdown table?
Paste the Markdown table in the Markdown → Excel tab, click Copy for Excel / Google Sheets, open a new sheet (sheets.new), click cell A1, and paste. The columns and rows are split for you. To keep it as a file instead, download the .xlsx and upload it to Google Drive — it opens in Google Sheets.
How do I convert Google Sheets to Markdown?
Select the range in Google Sheets, copy it, and paste it here. Bold, italic, strikethrough, and links in the copied cells are kept as Markdown formatting (untick Keep bold, italic & links for plain text), and merged cells are either repeated or left blank — your choice.
Can I convert just one sheet or a range of cells?
Yes. After opening a workbook, choose the sheet from the list and optionally enter a range — A1:D20, whole columns like B:F, or rows like 2:40. Or tick Convert all sheets to get every sheet as its own Markdown table under a heading.
What happens to merged cells, hidden rows, and empty rows?
Markdown tables can't merge cells, so a merged value is either repeated in every cell it covered or kept only in the first one. Hidden rows and columns are skipped by default, and empty rows and columns are dropped, so a sheet with some spacing still produces a tight table.
How do I convert Excel to Markdown in Python?
With pandas: pd.read_excel("file.xlsx", sheet_name="sheet1").to_markdown(index=False). Reading .xlsx needs openpyxl and to_markdown needs tabulate (pip install openpyxl tabulate). Note that pandas gives you the raw values, not Excel's display formatting — this page keeps dates and currency as they appear in the sheet.
Is my spreadsheet uploaded?
No. The workbook is opened by SheetJS running in your browser, and pasted cells never leave the page. Nothing is sent to a server, so it is safe for internal numbers.
Related free tools
See all free tools →Built something? Put it online in seconds
host0 is the cloud for small software: bring any coding agent, build the tool only you need — like this one — and say "deploy to host0". Live at a shareable URL, no servers to run.