Markdown table generator
Paste CSV or Excel data and get a Markdown table — ready for GitHub, Notion and READMEs.
0 B uploaded — this page has not sent your files anywhere?
Other conversion sites upload your spreadsheet to a server, process it there, and say they delete it after a while. Until that happens, your rows sit on someone else’s server. Here there is no upload step at all. The more sensitive the data — customer lists, payroll, anything with personal identifiers — the more that difference matters. See how to verify it →
More table converters
What carries over when a spreadsheet becomes a Markdown table?
A Markdown table is plain text split into cells with pipes (|) and hyphens, so once it has more than a few columns, lining it up by hand goes wrong one cell at a time. Paste a cell range from Excel or Google Sheets, or open a CSV or Excel file, and this tool writes a pipe table with the first row as the header. The result appears in the output box, ready to copy or save as a .md file.
A closer look
A GitHub-flavored Markdown table has a header line, a delimiter line such as | --- | under it, and then the data lines. The tool uses the first row it reads as the header and gives every line as many cells as the widest row: short rows are padded with empty cells and completely blank rows are dropped. Each cell gets a single space on either side and no extra padding to line up the columns, so the raw text looks ragged, but the rendered table lines up exactly the same.
Only two things inside a cell are changed. A pipe would end the cell early, so it becomes \|, and because each table row has to sit on one line, a line break inside a cell becomes <br>. Other Markdown symbols such as asterisks, underscores and backticks, and any HTML, are left alone. Values arrive the way they were displayed: CSV and pasted text exactly as written (00123 stays 00123), and Excel files with their cell formatting applied (1,234,568 or 13%, for example).
How to use it
- Open the Paste text tab, paste a cell range copied from Excel or Google Sheets and press Load as table; tab-separated data is recognized automatically. If you have a file, use the Upload file tab instead and pick a CSV, TSV, XLSX, XLS or ODS file.
- Check in the preview that the first row really is the header. If the workbook has several sheets, choose the one with your table from the Sheet: menu.
- When the Markdown appears in the output box, press Copy result, or Download Markdown to save it as a .md file.
When it helps
Common snags
Tip For a number column, change that column’s --- to ---: in the delimiter line; GitHub then right-aligns it, which makes the digits much easier to compare.
Frequently asked questions
Can I paste straight from Excel?
Yes. Copy a cell range in Excel or Google Sheets and paste it into the paste tab — tab-separated data is detected automatically and becomes a Markdown table.
What about pipes (|) or line breaks inside cells?
Pipes are escaped as \| and line breaks become <br>, so the table never breaks.
My CSV shows garbled characters
sheetmoa reads your file as UTF-8 first. If it finds broken characters (�), it retries only with the Korean legacy encoding EUC-KR (CP949), which Korean Excel uses by default; old .xls files are also read with code page 949. No other legacy encoding is tried. Files saved as UTF-8 (Excel's "CSV UTF-8 (Comma delimited)") open correctly, but a CSV saved in Windows-1252 (what Excel's plain "CSV (Comma delimited)" produces on Western-language Windows) can show broken accents such as "A�o". If that happens, re-save the file in Excel as "CSV UTF-8 (Comma delimited)" and open it again.
Is my data uploaded to a server?
No. Every conversion runs inside your browser and your file is never sent over the network. Safe even for customer lists and confidential spreadsheets.
Is it free?
Completely free — no limits on file count or size, and no sign-up.