Free Excel (XLSX) to Markdown Converter
Convert Excel .xlsx spreadsheets to multiple Markdown tables — one GFM table per sheet. Preserves formula values, headers, alignment. Perfect for feeding Excel into ChatGPT/Claude.
Drop a file here or
.xlsx, .xls, .ods
Benefits
Multi-sheet workbook → multiple Markdown tables, each with the sheet name as heading. Easy to feed AI for per-section analysis.
Excel formulas are auto-evaluated → display value. AI doesn't need to understand Excel syntax, just the result.
XLSX is extremely verbose ZIP-XML. 10 sheets × 1000 rows can save 90% of tokens when converted to Markdown tables.
How to use
- 1Drop a .xlsx file (Excel 2007+) or .xls (Excel 97-2003).
- 2SheetJS parses each sheet, renders as a GFM table.
- 3Each sheet appears under its own heading in the Markdown output.
- 4Copy everything or download .md, or paste directly into ChatGPT for analysis.
What is XLSX to Markdown?
XLSX has been Excel's format since 2007 — a ZIP of XML files for each sheet. When users feed Excel to ChatGPT (drag-drop or paste-copy), AI often struggles with layout — especially for multi-sheet workbooks, complex formulas, and special number/date formats.
This tool uses SheetJS (xlsx) — the most powerful JavaScript Excel reader, used by major SaaS products. SheetJS parses each sheet, evaluates formulas, gets cell values (resolved), then we format as GFM Markdown tables.
Use cases: accountants/finance feeding bank statements into Claude for spending analysis; data analysts converting small datasets before EDA in GPT-4; HR converting payroll/timesheet tables to AI-readable format.
- ✓XLSX (Excel 2007+) and XLS (legacy) support
- ✓Multi-sheet workbook → multiple MD tables, each with a heading
- ✓Auto-evaluates formulas → display value (=SUM(A1:A10) → 12345)
- ✓Number formats (currency, percentage, date) kept as strings
- ✓First row auto-detected as table header (toggleable for sheets without)
- ✓Limit of 50,000 cells per sheet to prevent browser overload
When to use it
Convert Excel statement to MD, paste into Claude: 'analyse my spending over the last 3 months'.
Datasets under 500 rows are small enough to feed directly — no need to upload via API. Markdown beats raw paste.
Sales summary Excel → MD → Claude generates insights, top products, anomalies.
Convert price-list Excel to MD for AI to write product descriptions or comparisons.
Excel export from Google Forms → MD → AI synthesises responses, finds patterns.
How it works
SheetJS (npm: xlsx) is the most feature-complete JavaScript Excel library — read/write XLSX, XLS, CSV, ODS, FODS. Particularly strong on formula evaluation, conditional formats, and merged cells. Runs 100% in-browser at ~500 KB gzipped.
When parsing, SheetJS produces a workbook object with each SheetName → 2D array of cells (objects with v=value, t=type, w=formatted, f=formula). We use w (formatted display value) to preserve what users see in Excel — currency shows $1,234.56, not 1234.56.
Markdown output uses GFM table syntax: header row, separator |---|---|, then data rows. AI engines render GFM well — Claude/ChatGPT/Gemini understand and respect table structure when responding.
XLSX → Markdown FAQ
Can it handle huge sheets (10k+ rows)?
Limited to 50k cells per sheet to prevent browser crashes. For larger sheets, split first. Phase 2 will add streaming mode.
Are complex formulas (VLOOKUP, INDEX) resolved?
Yes for simple formulas and lookups within the same workbook. Formulas referencing external workbooks or custom functions show #ERROR — resolve in Excel first.
Are conditional formatting and cell colours preserved?
No. Markdown tables don't support colour. Only text content and number/date format are kept.
How are merged cells handled?
The merged cell appears at the top-left position; other cells in the merge range are blank. Markdown table format limitation.
Are pivot tables converted?
Pivot results render as a regular table. Pivot definitions (slicers, row/column groups) are not preserved — only the final result.