Excel to Markdown Table Converter — Online & Private
Convert Excel ranges to GitHub-Flavored Markdown tables instantly — paste from the clipboard or drop the workbook, pipes escaped, numeric columns aligned. Zero upload, 100% client-side.
Instant pipeline
Paste, drop, or upload — conversion updates automatically.
Typed output
Columns are inferred as INTEGER, NUMERIC, BOOLEAN, or VARCHAR.
100% local
Files never leave your browser, even at the 15MB cap.
Input
Excel fileParsed columns and row counts appear here after conversion.
Output
Markdown TableGenerated Markdown Table appears here after conversion.
100% Client-Side Execution: Your files, database rows, and customer data are processed entirely in local browser memory. Zero bytes are uploaded to any server or external API.
Technical reference
How Excel to Markdown conversion works
Excel to Markdown Table Converter runs Excel workbooks through a deterministic, fully client-side pipeline and produces Markdown output in a single pass — no round-trips, no queues, no waiting on someone else's server. Drop a .xlsx or .xls workbook onto the input pane — the first worksheet is picked up automatically. Press Run Conversion (or just pause typing — the studio parses as you go), and the generated output appears on the right with line numbers, syntax highlighting, and one-click copy or download.
Workbook parsing with native type preservation
The workbook is decoded entirely in your browser: the first worksheet is selected, its first row is treated as the header row, and every remaining row becomes a record. Both modern .xlsx files and the legacy .xls format are accepted, up to the 15MB client-side cap.
Unlike CSV, spreadsheet cells carry real types — and that flows through the whole pipeline. Numeric amounts and true/false booleans survive into conversion natively, so SQL output gets genuine INTEGER and BOOLEAN columns instead of quoted strings, and JSON output gets numbers instead of text. Blank rows are skipped automatically, and anything over 1MB is parsed inside a background Web Worker so the tab stays fully interactive while large books decode.
Excel to Markdown: from spreadsheet to PR-ready table
The two paths in are both one step: drop the workbook (first sheet, first row as header) or copy a range in Excel and paste — the clipboard carries TSV, which the delimiter sniffer detects without any settings. The path out is a GitHub-Flavored Markdown table that inherits the sheet's headers exactly, escapes pipes inside cells, converts embedded line breaks to <br>, and right-aligns columns that are numeric end to end. It is the fastest honest route from a spreadsheet somebody maintains to a table a PR reviewer can read.
The fidelity rules mirror the Excel engine's own: formula cells contribute their cached computed values — what the cell displays is what converts — and numeric cells serialize without the sheet's display formatting (1234.5, not 1,234.50), which is almost always what a documentation table wants. A final save with recalculation before converting guarantees the caches are current, and the 15MB client-side cap covers workbooks far larger than any table a README needs.
GitHub-Flavored Markdown tables, escaped correctly
The output is a GitHub-Flavored Markdown pipe table — the format rendered natively by GitHub, GitLab, Bitbucket, and virtually every documentation site generator. Header row, delimiter row, then one line per record: exactly what READMEs and PR descriptions expect. Cells containing pipes are escaped as \| and embedded line breaks become <br>, the two characters that would otherwise break the table structure.
Numeric columns are right-aligned automatically when the alignment option is on: every value in a column is checked, and only columns that are entirely numeric get the ---: delimiter — amounts line up under their header the way spreadsheets align them. Text columns stay left-aligned with the plain --- form, so mixed tables look intentional rather than uniformly flush-left.
Private by architecture: your data never leaves the browser
Every stage of this conversion — parsing, type inference, and output generation — executes locally inside your browser's JavaScript engine. The input is never transmitted, logged, or stored: there is no upload endpoint, no queue, no telemetry, and no account to create. Files larger than 1MB are handed to a background Web Worker so the interface keeps animating at 60fps even on hundred-thousand-row imports, and the page keeps working offline once loaded because it is a fully static export.
That architecture makes the tool safe for the exports you would never paste into a random website: customer PII, financial line items, internal Salesforce extracts, and unreleased product data. Paste it, convert it, copy or download the result — and the bytes never moved from your machine.
Limits and practical tips
Inputs are capped at 15MB per file or paste — hundreds of thousands of rows in practice — purely as a browser-safety guard rather than a server policy, since there is no server involved at all. Processing is single-pass and deterministic: the same input with the same options always produces byte-identical output, which makes the generator safe to keep in CI pipelines and documentation. Disable numeric right-alignment if your target renderer ignores the ---: form and renders it literally.
Frequently asked questions
How do I convert an Excel table to Markdown?
Drop your .xlsx or .xls workbook onto the input pane — the first worksheet converts with its first row as the header — or copy a range in Excel and paste it (the clipboard carries TSV, which the parser detects automatically). Pick Markdown as the target and press Run Conversion: a GitHub-Flavored pipe table appears, ready for a README or PR description.
Can I paste directly from Excel without saving a file?
Yes — copying a range in Excel puts TSV on the clipboard, and pasting it into the input pane works identically to a file drop because the delimiter sniffer detects tabs automatically. That is the fastest path for one-off tables: select, copy, paste, convert. File drops are better for large workbooks with many rows.
What happens to cells containing pipes or line breaks?
Pipes are escaped as \| so a value can never terminate its own column, and embedded line breaks become <br> — the two transformations GitHub-Flavored Markdown requires to keep the table structure intact. Both are applied per cell during generation, so messy spreadsheet data still renders cleanly.
Why are some columns right-aligned?
Columns whose non-empty values are all numeric are right-aligned with GFM's ---: delimiter so figures line up under their headers — the same alignment convention spreadsheets use. Text columns stay left-aligned. Toggle the alignment option off if your target renderer does not support it.
Is my workbook uploaded to a server?
No. The workbook is decoded entirely inside your browser — no upload endpoint exists, nothing is logged, and the page keeps working offline once loaded. Financial spreadsheets, customer lists, and unreleased data stay on your machine by architecture, not by policy.
Which worksheet and rows does the converter use?
The first worksheet in tab order, with its first row as the header and every subsequent non-blank row as data — the same rule every converter on this site follows, so behavior is predictable across formats. If the table you need lives on another sheet, drag it to position one in Excel first, or copy just that range and paste it (pastes arrive as TSV and convert identically).
Why does my numeric column show 1234.5 instead of the 1,234.50 I see in Excel?
Because the converter uses the cell's underlying value, not its display formatting. Excel's number formats (thousands separators, currency symbols, decimal padding) are presentation, not data — and baking them into a Markdown table would freeze formatting into documentation. If you want the displayed form, format the column as Text in Excel so the displayed string becomes the stored value, then convert.